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: Leo Butler
Date: Tue, 22 Feb 2011 03:09:05 +0000 (GMT)
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.