Google Summer of Code Proposal - Conversion Tools

Michael Haggerty mhagger at alum.mit.edu
Sun Mar 30 15:13:44 CDT 2008


Christopher Brown wrote:
> I'm taking up the suggestion of the GSoC project idea #1.8: that of
> refining the conversion tools for migration to Mercurial from CVS,
> Subversion, etc.
> 
> My proposal can be found here:
> 
> http://audiere.googlepages.com/GSoC_Mercurial_Conversion_Tools.pdf
> 
> Feedback is appreciated, and I look forward to working with you guys
> over the summer!

I'm the maintainer of cvs2svn [1], so I know something about converting
from CVS.  cvs2svn can also convert to git, and hopefully the cvs2svn
and hg-fast-import combination will soon be competent enough that
cvs2svn can be used to convert to hg as well.

A tool to convert from CVS is very complex because the job is very
difficult.  According to ohloh.net's (admittedly somewhat silly)
estimate [2], cvs2svn would cost about 5 person years to build from
scratch.  I suggest you look at the cvs2svn feature list [3] to get an
idea what a serious "cvs2anything" converter needs to deal with.

By contrast, the cvsps-based tools all have problems with nontrivial CVS
repositories, failing or silently producing incorrect output.  Their
main advantage, as pointed out by Patrick Mézard, is that they are
relatively fast and can work incrementally.

Therefore if you want to work on a converter from CVS to Mercurial, I
strongly recommend that you ally yourself with an existing project
rather than starting from scratch.  For example, work on hg-fast-import
would be very useful to allow conversions from CVS to Mercurial using
cvs2svn.  In my opinion there is still some fundamental work needed to
define what input data hg-fast-import needs in order to build a
fully-functional Mercurial repository; likely it will require a little
bit more information than git-fast-import needs.

[A very interesting project would be to make cvs2svn work incrementally,
but that is far too ambitious for a GSoC project.]

Michael

[1] http://cvs2svn.tigris.org
[2] http://www.ohloh.net/projects/5593
[3] http://cvs2svn.tigris.org/features.html


More information about the Mercurial mailing list