From: "Eric S. Raymond" <esr@thyrsus.com>
To: Ilya Basin <basinilya@gmail.com>
Cc: git@vger.kernel.org
Subject: State of CVS-to-git conversion tools (Was: Re: cvsps: bad usage: invalid argument --norc)
Date: Sun, 14 Apr 2013 07:33:52 -0400 [thread overview]
Message-ID: <20130414113351.GA1299@thyrsus.com> (raw)
In-Reply-To: <673219382.20130414124800@gmail.com>
Ilya Basin <basinilya@gmail.com>:
> IB> Hi esr.
> IB> In cvsps 3.10 the flag --norc was removed. It broke 'git cvsimport'.
> IB> Please give the option back and write something in the man page like:
> IB> This option has no effect; it is present for compatibility
>
> Looks like the tool is completely different. I think I'll have to
> downgrade.
Or you could just use 3.x directly rather than through the git-cvsimport
wrapper. It works better that way - it actually ships a fast-import
stream that git fast-import can consume directly.
Old cvsps (2.x) was very, very broken; there was a bug in it that
pretty much guaranteed incorrect conversion of branchy repos. I've
fixed that particular bug, and several other serious ones, along with
adding the import-stream output stage, but I don't really trust the
cvsps code; I think its algorithmic core is weak and klugey and only
works semi-by-accident.
I do *not* recommend downgrading, it will pitch you from a bad
situation into a worse one. Yes, Junio is still shipping a wrapper
for 2.x, but that was very much against my advice.
I'm also now the maintainer of cvs-fast-export, which used to be Keith
Packard's utility for lifting the X.org CVS repo to git. That was before
I resurrected it and added a fast-import stream output stage.
I *think* cvs-fast-export's algorithms are more correct than cvsps's,
but I have not yet been able to pry loose the time to write the really
rigorous test suite to verify this. That goal has been second on my
prority list for a couple of months now; I keep wanting to get to it
but having to fight fires on other projects instead.
I wish I could point you at a convertor I really trust. I can't.
There is a third tool, cvs2git (based on the analyzer from cvs2svn)
that I don't maintain, which has problems of its own. And those three
are about it.
Yes, it's a swamp. The relatively poor capability of the tools isn't
anybody's fault; the problem domain is *nasty*. I've been working a
closely related but easier one (Subversion stream dump analysis) for a
couple years now and understanding it doesn't make it less ugly.
I think with 4-6 weeks of concentrated attention I could clean up the
mess and deliver a really high-quality converter, and I'm motivated to
do this because I want it as a CVS front end for reposurgeon. But it
hasn't happened yet and the incompleteness of my test suite is a
blocker in the way.
The topo analysis code in all these tools is really fragile and tends
to break on old edge cases when you try to teach it to handle new
ones, so a good set of regression tests is especially important. And
doesn't yet exist, though I have built a decent start for cvsps based
on the tests in the git tree.
Do you have enough interest and spare cycles to help finish the test
suite? Another pair of hands on it might speed things up a lot.
--
<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
next prev parent reply other threads:[~2013-04-14 11:44 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-14 8:18 cvsps: bad usage: invalid argument --norc Ilya Basin
2013-04-14 8:48 ` Ilya Basin
2013-04-14 9:47 ` John Keeping
2013-04-14 11:33 ` Eric S. Raymond [this message]
2013-04-15 5:00 ` State of CVS-to-git conversion tools (Was: Re: cvsps: bad usage: invalid argument --norc) Michael Haggerty
2013-04-15 17:58 ` Ilya Basin
2013-04-15 20:43 ` Jakub Narębski
2013-04-18 9:43 ` Eric S. Raymond
2013-04-19 5:29 ` Does git fast-import support deltas? Ilya Basin
2013-04-19 5:44 ` Felipe Contreras
2013-04-19 6:13 ` Jonathan Nieder
2013-04-20 10:22 ` Re[2]: State of CVS-to-git conversion tools (Was: Re: cvsps: bad usage: invalid argument --norc) Ilya Basin
2013-04-23 17:50 ` Eric S. Raymond
2013-04-23 18:30 ` Re[2]: " Ilya Basin
2013-04-23 21:06 ` Eric S. Raymond
2013-04-24 4:47 ` Re[2]: " Ilya Basin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130414113351.GA1299@thyrsus.com \
--to=esr@thyrsus.com \
--cc=basinilya@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).