On Mon, Sep 12, 2011 at 17:14, Philipp A. wrote:
thanks for picking up my rant in such a constructive manner :)
A quick googling showed me this tool, cvs2git, whose “Development status” section really sounds promising:
~~~~
Development status
Most of the work of converting a repository from CVS to a more modern version control system is inferring the most likely history given the incomplete information that CVS records. cvs2svn has a long history of making sense of even the most convoluted CVS repositories, and cvs2git uses this same machinery. Therefore, cvs2git inherits the robustness and many of the features of cvs2svn. cvs2svn can convert just about every CVS repository we have ever seen, and includes a plethora of options for customizing your conversion.
The output of cvs2git is one or more dump files that can be imported into git using the excellent git fast-import tool.
Although cvs2git is considerably newer than cvs2svn, and much less well tested, it is believed that cvs2git can (cautiously) be used for production conversions. If you use cvs2git, please let us know how it worked for you!
I took a look at their webpage after reading that cvs2svn is capable of converting .cvsignore into svn properties. When I tried to do conversion from CVS, the .cvsignore files are the only leftovers that somehow bother me (I would really like to get rid of .cvsignore files and put some gitignore somewhere, without my commit being visible), but then I noticed that .cvsignore -> .gitignore conversion is still on TODO list. The other thing that would make me happy would be the ability to apply some hook to do some transformation of code before comitting to git (let's say that I would want to reencode files into UTF-8 or that I would want to move or rename some files before the actual commit). If you know a simple way to do this, please let me know. Mojca Mojca