History of CVS Migration
Version 12
CVS Migration
Moving from CVS with extensive virtual modules (aliases) to Git or Mercurial
This is the notes about the bitweaver.org projects migration from CVS which makes extensive use of virtual modules (aka aliases ) in CVS to a distributed version control system (VCS) such as Mercurial or Git.
Feature | Git | Mercurial |
---|---|---|
Ad-hoc Builds | As of git 1.5.3, there is a concept known as super modules | |
Keywords | " keyword substitution is just stupid" - Linus in his trademark @$$hole attitude. Do some scripty stuff is his answer. And that is the _right_ answer since it is a huge cause of merge pain while developing. Keywords should be set at release time, not during development. I will develop a release script that handles this for us. -waterdrgon | Keyword Extension works like a charm. Supports all existing CVS keywords out of the box. |
Cross Platform Support | Windows support is reported to be weak, but reports were two years ago and much progress has been made. It is "good enough" with msysgit to get the job done. | Rockin' on all platforms - linux, windows, OSX |
Build | On CentOS, git needed to be upgraded to get super modules. The FC13 git-1.7 rpm worked (rpm -ivh --nomd5). One small git.spec tweak was removing the conditional "--vendor" around desktop-file-install, so the line looked just like: "desktop-file-install --vendor fedora --dir=%{buildroot}%{_datadir}/applications %{SOURCE4}" CentOS 5.4+ broke things so the rpm would not build - had to docbook dtd definition to get a Fedora rpm to build properly. | |
Migration | Migration with cvs2git is a snap with the attached "convert" script: . Note that the script expects the repository to be stored in /cvsroot/bitweaver -Waterdragon | #Migrate each module separately, and then combine http://stackoverflow.com/questions/12843/how-to-combine-two-projects-in-mercurial |