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




On Mon, 21 Feb 2011, 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.
< 
< > I'd like to carry over the entire CVS history including the
< > commit log, branches, and tags.
< > The explanation part has to include a Rosetta Stone to
< > translate CVS operations to Git. That should probably go
< > on a wiki or something to make it easier to find.
< I used the git tutorial
< <http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html>; to
< get started.  The Pro Git book <http://progit.org/book/>; is nice too,
< especially Chapter 2.
< 
< I assume that whatever dvc is used, the official code is whatever is in
< the git repo on sourceforge, not on someone's random clone somewhere.
 
 Here is what I propose (sorry for the length):

 1. Agree a date & time T to make the CVS repo read-only, but leave it
 online for the time being;

 2. Put a new git clone of the CVS repo in place at time T-1, with
 read-only access for all but the creator, and at time T the current
 CVS developers can be given write access. At the same time, the
 CVS HEAD will be retired as a separate branch CVS-HEAD, and
 development can continue on a new HEAD.

 From time T-1 to T, developers ought to hold-off committing to the
 CVS repo, and they ought to clone the git repo. After time T, the
 git repo becomes the official project repo, and developers have
 write access to it.

 3. A few links to tutorials and maybe some of the most frequently used commands
 can be added to our wiki. Git is quite well documented, and there are
 tutorial/cheatsheets for CVS users to adapt. The bog-standard vc-mode
 in Emacs also works quite nicely with git when working on the local
 repo; I've not yet tried it for pushing or pulling.

 4. The project webpages will need to be cleaned up and references to
 the CVS repo changed to the git repo.

 -----
 
 1-3 can be done within a week, so I suggest the switch-over be made
 at T = 00:00:01 27 Feb 2011 GMT and T-1 be one day earlier.

 -----

 A few notes:
 -the commit logs, branches and tags from the CVS repo are now on my git
 clone; casual inspection shows all have been preserved. I have also 
 successfully updated the git master to today's CVS HEAD.
 -the original commit logs do not contain email addresses, just the 
 sourceforge user id of the committer, and these are preserved in the
 git repo. 
 -I don't have sufficient rights on sourceforge to create a git
 repo from the Maxima CVS repo, nor can I clone a github repo 
 hosted outside sourceforge.


 Leo

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