On Wed, Dec 08, 2004 at 06:21:18PM -0700, Phil Frost wrote:
> On Wed, Dec 08, 2004 at 07:19:07PM -0500, William Coleda wrote:
> > Is there a plan at any point to move to an svn repository from cvs?
> > 
> > I'd like to work on a patch to move all the perl* pmcs into dynclasses, 
> > which would involve quite a bit of file moving, and I'll happily wait for 
> > svn if we're going that way, since it'll be smoother.
> 
> If you are planning on switching revision control systems, I suggest
> something other than svn. There are a number of other systems available
> to the free software developer which offer serious advantages which
> might not be aparent to those who have not experienced them. Among them
> are arch, darcs, and monotone.

Arch is out.  Its Win32 support is crap.
http://wiki.gnuarch.org/moin.cgi/Native_20WIN32_20Support

monotone is out.  Its too unstable.  They just made an incompatible change
requiring *lossy* migration.
http://www.venge.net/monotone/README.changesets

This leaves just Darcs.  I would eshew Darcs for a large, Open project for
these reasons.

* Its immature.  What happens if we hit a bug and wedge the repository or
worse, corrupt it?  What happens if they introduce an incompatible change
as monotone did?

* We don't have any Darcs experts to solve the hard problems.

* The darcs manual proudly proclaims "Darcs is refreshingly different 
from CVS."  "Because of the different models used by cvs and darcs, it is 
difficult to provide a complete equivalence between cvs and darcs."  Parrot
has a lot of CVS users.  They do not want "refreshingly different".


However, this does not mean distributed version control is out.  There is
an option.  SVK.  Its distributed version control WITHOUT everybody having
to learn and run SVK.  SVK is a *client* of a Subversion (or CVS or Perforce)
repository.  This means Parrot can switch to Subversion and those that want
to play with distributed version control can do so without everybody else
having to drink their brand of Kool-Aid.


For reference, here's the gauntlet I'd make any new revision control system 
for Parrot run through.

1)  Are they easily available on all the platforms Parrot is?  Various
Unixen, OS X, Windows.  Is there any hope for a VMS port?

2)  Can the command set and workflow be made similar to CVS?  You're going 
to have enough trouble convincing people to leave the warm, familiar, 
comforting, if slightly demented, embrace of CVS that they
have known for years.  Its best if the new system works as much like CVS
as possible.

3)  Do we need distributed version control?  Can this be gotten without
having to drink their brand of Kool-Aid, such as by individuals using SVK
over a Subversion repository?

4)  Are these systems mature enough that they're not going to fall apart
under a large repository?  Or that we don't have to worry about hitting a
bug which corrupts the repository or gets it into an inconsistent state?
Or that they'll introduce an incompatible change?

5)  Do we have any experts with these new version control systems?  Someone
who knows how to solve the hairy problems.

6)  Can we convert the existing CVS repository to it without losing
revision histories?

7)  Can we supply a read-only CVS mirror of the repository?

8)  What's the documentation like?  Is there a well-written, comprehensive
tutorial?  Can I get going in under an hour?


-- 
Michael G Schwern        [EMAIL PROTECTED]  http://www.pobox.com/~schwern/
Home of da bomb

Reply via email to