[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