Now in Git
Published: Sunday 2009-08-09.
I have previously moved several of my programming projects from CVS to Git since CVS as a version control system has its shortcomings. A project I until now have not moved, for several reasons, is my web site (that is, the pages you are reading just now). One of the reasons is that I use several CVS funcitons not available in Git, such as expansion of keywords, another is that I have not had the entire website under CVS control, among other things I have not stored my pictures in it. Yet another reason is that the import methods I tried a couple of years ago did not handle the pages properly, much because of how CVS is constructed.
But now I have moved it all over. I used cvs2git, a sub-project of cvs2svn and it moved the revision history well enough, even if I got some weird special check-ins here and there that should not really be there. I have also cheated and added a script that expands things like $Date$ in a way that looks like CVS. In addition I have managed to cheat in the files that was outside version control and I keep my fingers crossed that everything will work as expected.
My next project in line for conversion is my Unix home directory, which still lives in CVS. Here I have an additionally interesting problem in that some of the machines I would like to use the system on is uncapable of running Git, but it is possible that it can be solved using git-cvsserver. Time will tell what happens there.