time to switch from CVS to Git, was: Missing mailings from commits
Subject: time to switch from CVS to Git, was: Missing mailings from commits
From: James Amundson
Date: Tue, 22 Feb 2011 10:25:31 -0600
On 02/21/2011 03:24 PM, Raymond Toy wrote:
> On 2/21/11 1:49 PM, Robert Dodier wrote:
>> I know there are other systems we could use, other than Git,
>> but Git is the only one that has gotten any traction with the
>> Maxima developers, from what I can tel
>>
>> Can somebody figure out how to change over from CVS to Git
>> and explain the plan to us and then carry it out?
> Since Leo has already done it, perhaps he is in the best position. I
> recently converted a cvs repo on sourceforge to git using "git
> cvsimport". Worked pretty well and preserved the logs, branches, and
> tags. Using gitk --all on Leo's git repo seems to show that everything
> is preserved. Didn't check in detail, though.
>
> The only thing I would like to see is that real names and emails be
> imported into git, at least for the currently "active" developers.
Caution is required here. I have converted several different CVS
repositories to git over the past few years. I found that git-cvsimport
always *appeared* to work, but *often* produced git checkouts that were
subtly different from the cvs versions. In fact, I think I was
experimenting with the Maxima repository when I first noticed that my
git version didn't match up with the cvs version.
The last time I tried to use git-cvsimport was a couple of years ago, so
it may be that it has been substantially improved in the meantime.
However, I looked into fixing it myself at the time and learned that the
extraction of historical cvs data from a cvs repository is much more
complicated than I had ever dreamed. In the end, I used the git-ized
version of cvs2svn to do conversions. I have found that to be much more
reliable, even though I have had to tweak it a little from time to time.
I sent Robert a private email volunteering to help with the maxima
cvs-git conversion a little while ago, but haven't found time to follow
up. (Sorry about that, Robert.) It appears that the time is now,
however. Here is what I suggest:
1) Carefully check that the current CVS version is identical to the
git-cvsimport version. I.e., do a recursive diff on checked-out copies
of both.
2) Repeat (1) for the past n-releases, where n is limited by patience.
If (1) and (2) pass, git-cvsimport has been greatly improved and you
should carry on with the plan. If not, somebody should try using cvs2svn
to do the conversion. I would be happy to do it if someone can point me
to the tarball of the cvs files (the repository, not just a checkout.)
(Obviously, I used to know how to get that, but it's been a while.)
--Jim