[slime-devel] Re: Mercurial

Brian Downing bdowning at lavos.net
Wed Mar 5 07:35:54 UTC 2008


On Wed, Mar 05, 2008 at 08:28:44AM +0200, Michael Livshin wrote:
> Brian Mastenbrook <brian at mastenbrook.net> writes:
> > No. These days it appears that cvs is becoming the least common
> > denominator from which people mirror git or $DVCSOFWEEK. Folks who
> > want to use a distributed version control system can set up mirroring
> > from cvs upstream. For the rest of us it's just one less package to
> > install on N different computers where I have SLIME checked out. In
> > fact it'd probably be even better if actual development took place off
> > the mirror and got pushed to CVS HEAD when it worked reliably.
> 
> what he said.  this is effectively today's SBCL situation, BTW, and it
> Seems To Work Just Fine.

The irony is (and I think I can say this authoritatively, having written
most of one before giving up) writing a CVS importer into a
changeset-DAG-based system that works correctly in all cases is /really/
hard, by far the hardest of all of the currently-popular systems.  SVN
is probably second, because of its losing branches-are-copies model.

It's quite easy (theoretically) to migrate between any of the
changeset-DAG-based systems.

At least in git's case, all of the existing CVS importers have some flaw
or another:

* git cvsimport:  Incremental, but uses cvsps, which means it is slow and
  makes fantastically incorrect decisions sometimes.  Treats vendor
  branches like normal branches, which means everything gets completely
  mangled.
* parsecvs:  Fast, not incremental, sometimes misplaces tags.  This is
  what I've wound up using for one-time imports, and I fix the tags by hand
  when they're wrong.
* fromcvs:  Fast, incremental, doesn't do tags at all.  This is what I
  use for incremental imports.
* cvs2svn/cvs2git:  Not incremental, but probably the most correct of all
  current importers.  Unfortunately, AFAIK it still makes everything
  look like an SVN repository (i.e. with an extra branch for each tag).
* Tailor:  Slow, incremental, and has made very bad decisions on me
  similar to the ones that git cvsimport makes.

This is getting quite off topic though, sorry...

-bcd



More information about the slime-devel mailing list