History of CVS Migration
Version 15
CVS Migration
Moving from CVS with extensive virtual modules (aliases) to Git or Mercurial
Created by: WaterDragon, Last modification: 10 Jun 2010 (16:38 UTC) by WaterDragon
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 edit docbook dtd definition to get a Fedora rpm to build properly. Replace "4.5" with "4.2" in /etc/asciidoc/docbook.conf | |
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 |