Subject: Re: State of CVS-to-git conversion tools (Was: Re: cvsps: bad usage: invalid argument --norc)

From: "Eric S. Raymond" <[email-masked]>
Date: Tue, 23 Apr 2013 13:50:00 -0400

Apologies for the somewhat belated reply.  I've been even busier than
usual lately and am about to be traveling for a week.

Ilya Basin <[email-masked]>:
> Hi Eric.
> 
> ESR> cvs-fast-export does not have incremental-import support.
> ESR> Whether git-cvs-import has it depend on which version you have
> ESR> and what backend it it is using. I don't maintain that wrapper.
> Did you mean "git-fast-import"? Or do you know any wrapper that
> already uses cvsps3 --fast-export?

No, I meant git-cvs-import.  I wrote a version of it that supports
cvsps3, but Junio chose to keep the old wrapper.  Apparently he would
rather inflict cvsps2's rather serious known bugs on users than break
backward compatibility even a little.  

> First of all, I think cvsps3 has almost everithing required for
> incremental import: one could just take the date of the last commit
> and invoke cvs ps with the '-d' flag. However, to import new commits
> into existing branches the stream should contain the "from" command in
> oldest commits in each branch (now missing).
> If the branch already exists in the target git repo, it's easy to
> refer it in the stream:
>     from refs/heads/branchname^0

Look at the -i option.  That may do what you need.
 
> But if the branch is new, but it's parent commit is already imported,
> I guess, the only way to refer it is by its SHA-1
> Eric, what parent information can cvsps provide for the first commit
> in a branch, when invoked with the '-d' flag?

At the moment it doesn't provide any at all.  That case wasn't on my
radar when I was fixing the code.  If you can specify a behavior you
think would be useful, I'm listening.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>