I'm finally looking into conversion of the lsh repository from CVS to
GIT, and this naturally also includes nettle.
A public test repository can be found at lysator's gitorious
installation, at http://git.lysator.liu.se/lsh/test-2. The conversion was
done by the pcvs2git.pike program (see
git://pike-git.lysator.liu.se/pcvs2git.git), and I got some help from
Henrik Grubbström to write a config file to handle the few peculiarities
in the lsh repository.
The intention is that the new git repository should include all branches
and tags from the old cvs repository, and record major merge events,
like the 2006-05-16 merge from the experimental branch to the trunk.
Please test, and if all goes well I'll rename this repository to "lsh"
(or recreate, if I can't figure out how to do repository renames with gitorious).
If this first steps works out ok, step two is to do a some cleanups
(switching to utf-8 for the files, deleting old $Id$ tags, etc). And then
step three is to extract the nettle subdirectory as an independent
project and repository, using git subtree of git filter-branch or so
(I'm not sure what's the best tool for that job). Other sub-projects,
e.g., the argp implementation, can be split out later, if desired.
For the few "common files" (e.g., misc/run-tests), they'll simply have
to be duplicated in several repositories. If I still want to bundle
nettle with the lsh distribution, I'll handle that by setting up some
symlink in my working tree. git submodule is probably not a solution,
and git subtree is most likely overkill.
The old CVS repository can be considered read-only now.
Regards,
/Niels
--
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
Martin Storsjö <martin(a)martin.st> writes:
> I'd hope for a round of filter-branch to rewrite author names in git
> to the original author of patches.
I was thinking that it's good enough to convert the information recorded
by cvs. But it's certainly possible to add specified author names for
certain commits, as a part of the conversion process. The
config/Pike-real-authors file (from the
git://pike-git.lysator.liu.se/pcvs2git.git repository) is an example of
what that input file should look like. Since I haven't used it I'm not
sure how it works, but I could try to find out.
But it's going to be some manual work, going through the ChangeLog files
looking for contributed changes, and then looking at the cvs log to
identify affected revisions and writing the input file for
--contributors.
> If you don't feel up to doing this yourself, I can try to give it a go.
If you want to give it a try, I'll explain what's needed.
1. Get pike 7.8 release 550 or later,
http://pike.ida.liu.se/pub/pike/beta/7.8.550/Pike-v7.8.550.tar.gz
Annoyingly enough, it doesn't support the most recent version of
nettle, resulting in compilation errors on the DES glue. I had to #if
out the DES and DES3 ciphers from the Nettle module. Alternatively,
there should be some configure argument to force Pike to build with
the bundled version of nettle, rather than the installed version.
2. Get git://pike-git.lysator.liu.se/pcvs2git.git. This includes
Henrik's configuration file in config/lsh.pcvs2git.
3. Get the CVS repository. I'm putting a copy at
http://www.lysator.liu.se/~nisse/misc/lsh-cvsroot.tar.gz
4. Create an authors.txt file, containing
nisse=Niels Möller <nisse(a)lysator.liu.se>
uid444=Niels Möller <nisse(a)lysator.liu.se>
_cvs_pont=Pontus Freyhult <pont(a)soua.net>
5. To do the conversion, I used the command line
pike ../pcvs2git/pcvs2git.pike -c ../pcvs2git/config/lsh.pcvs2git \
-A authors.txt -k -l -C lsh.git -d lsh-cvsroot/lsh
It spawns a git fast-import process which populates the new
repository.
The result should be almost identical to the current "test-2" repository
(Henrik has committed some tweaks for the generated .gitattributes
files).
To use a contributors file, add --contributors contributors.txt early
on the above command line (the -d option and argument has to come after
other options).
Regards,
/Niels
--
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.