Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Feb 2004 18:53:14 +0100
From:      Stijn Hoop <stijn@win.tue.nl>
To:        Craig Boston <craig@tobuj.gank.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Subversion/CVS experiment summary
Message-ID:  <20040209175314.GU2803@pcwin002.win.tue.nl>
In-Reply-To: <200402091130.05656.craig@tobuj.gank.org>
References:  <200402091130.05656.craig@tobuj.gank.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--5V5c01chtBAiSHoy
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Feb 09, 2004 at 11:30:05AM -0600, Craig Boston wrote:
> This is an informal report on the viability of using Subversion to manage=
 the=20
> FreeBSD source code repository.  Some of this is generic and will be fami=
liar=20
> to anyone who has looked at SVN before, some is more FreeBSD-specific.

Wow, you have done the experiment I thought to do one of these days! Cool!

> -------------------------------------------------------------------------=
----
> Section the 1st - Motive
> -------------------------------------------------------------------------=
----
> My main motivation for these tests was to bring my local modifications to=
=20
> FreeBSD into some semblance of order.  It seems I've amassed a bit of a=
=20
> collection of local patches, 3rd party patches, and side projects -- some=
 of=20
> which are mutually exclusive or apply to different branches.  Simply keep=
ing=20
> a working copy with my changes in it works fine for one project but becom=
es=20
> painful when there are several.  I'd also like to be able to keep version=
=20
> history for my modifications.

That is my primary motivation as well -- sort of a private branch for mods /
testing things.

> -------------------------------------------------------------------------=
----
> Section the 2nd - Setup and conversion
> -------------------------------------------------------------------------=
----
> I've heard of attempts to convert the repo for testing using the cvs2svn.=
py=20
> failing (for more details, see the thread at=20
> http://docs.freebsd.org/cgi/getmsg.cgi?fetch=3D640133+0+archive/2004/free=
bsd-hackers/20040111.freebsd-hackers).
> These problems seem to be fixed in the most recent version of the script =
-- I=20
> have been able to successfully import sys, bin, sbin, and lib so far.  Th=
e=20
> next target for testing is contrib as it seems to be the most likely=20
> candidate for problems with all those vendor branches.

Did you have to modify the script, or pass unusual options? I'd like to
reproduce this, but I didn't get very far when I tried a few days ago with
the 0.37.0 version of the tool.

I also tried refinecvs (formerly cvs2svn.pl), found at

http://lev.serebryakov.spb.ru/refinecvs/

but although it looks like it handles things much better (even vendor
branches etc), it loads EVERYTHING into memory -- which means that it
eventually grew to 1G of memory/swap at which point my memory was exhausted,
and this was at pass 2 of 7...

> Comments on importing: It's SLOOOOOOOOOOW.  It took 43.9 hours just for=
=20
> src/sys, and this is a relatively speedy system!  It starts out at a pret=
ty=20
> good pace, but the more commits it processes, the slower each one seems t=
o=20
> take.

That doesn't bode well. Is committing in the new SVN repository also slow?

> For my purposes I would also need some method of incrementally updating t=
he=20
> repository with any new commits made to CVS.  This doesn't exist yet, but=
 I'm=20
> thinking about trying to hack cvs2svn to do this.  Kind of an inverse ven=
dor=20
> branch I guess.

My thoughts were now going to do something like Tom Lord proposed for an
Arch gateway -- just import a CVS working copy into SVN at a certain cut-off
date, and setup a bi-directional gateway between the two. That way people
can use either tool. The hard problem to solve is indeed getting the
changeset from CVS (at least it is when you're not running when a commit
is made, as is the case in my setup where I simply cvsup the repository and
thus get lots of commits at once).

But if the whole repository can be converted it's probably the way to go.

> -------------------------------------------------------------------------=
----
> Section the 3rd - Head to Head
> -------------------------------------------------------------------------=
----

Great summary of the pros/cons of either system.

>   * "Requires" Apache for the network server.  There is a simpler CVS-like
>     network protocol, but it suffers from the same problems with access=
=20
>     control and locking and the like that CVS does.  In order to overcome
>     those  limitations, you pretty much have to use Apache/WebDAV.  Some =
may
>     argue that this isn't really a negative, but it certainly doesn't go =
with
>     the K.I.S.S. philosophy.

Actually, would a sort of access control wrapper that is now also used with
the FreeBSD CVS repository not work? I do agree that it would be nice to
have per-directory access control with the svnserve method.

>   * No cvsup equivalent yet.  You can fairly easily use WebDAV to pull a =
copy
>     of the trunk or a particular branch, but it's not nearly as efficient=
 as
>     the rsync algorithm.  There's also no way to use WebDAV to grab a cer=
tain
>     date or revision like you can with cvsup -- you have to have the svn
>     client installed.  In order to be even a contender to replace CVS, it
>     still needs a *FAST* and *SIMPLE* way to synchronize source with an
>     arbitrary tag or revision.

Agreed.

>   * Still no solution for the repeated merge problem.  This is supposed t=
o be
>     addressed post-1.0; no official timeframe on it AFAIK.

Which is a shame, this would be a major selling point. On the other hand,
considering the amount of work done and the fact that it really works quite
well already (at least for my small repository) should make people want to
switch :)

> It also looks as if Subversion 0.37 (aka 1.0-RC) has just been released. =
I'll=20
> have to take a look at it and see if any of the problems noted above have=
=20
> been resolved.

Please let me know the results!

--Stijn

--=20
This sentence contradicts itself -- no actually it doesn't.
		-- Hofstadter

--5V5c01chtBAiSHoy
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFAJ8kKY3r/tLQmfWcRAqqEAKCPXar/qXmY+D8llCwfxPadHborSgCgpul7
OPOURqpwMFhTbOZXs/bPO+Y=
=Kk49
-----END PGP SIGNATURE-----

--5V5c01chtBAiSHoy--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040209175314.GU2803>