time to switch from CVS to Git, was: Missing mailings from commits



< 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
<

Following Jim's advice, I wrote a little script that implements (1-2)
to check the faithfulness of git cvsimport. I ran the script on the
latest release, and the diff file is attached along with the script.
Essentially, cvsimport changed 4 files by changing header info in 2
and adding \015 and \032 characters in two other files. No files were
added or deleted. I don't know, but this seems minor and easily fixed
(copy and commit).

I am running the test over all branches at the moment.

It would be useful if a few other folks would take a look at the script
to see if I've missed something, and to run the test.

Leo


I ran the test as follows: in $PWD, there are subdirectories
cvs-maxima-temp and git-maxima-temp holding the respective repositories,
and the script check-repos.sh.

I ran the script with the command line:

BRANCH=version-5_23_2 ./check-repos.sh ./cvs-maxima-temp ./git-maxima-temp

to check an individual branch; to check all branches do

./check-repos.sh ./cvs-maxima-temp ./git-maxima-temp


-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: check-repos.sh
Type: application/x-sh
Size: 2376 bytes
Desc: script
URL: <http://www.math.utexas.edu/pipermail/maxima/attachments/20110223/890991a6/attachment.sh>;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: repos-version-5_23_2.diff
Type: text/x-diff
Size: 3484 bytes
Desc: 
URL: <http://www.math.utexas.edu/pipermail/maxima/attachments/20110223/890991a6/attachment.diff>;