History of CVS Migration
Version 17
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. No SCM support during build/export for tagging files with a release marker. /nickpalmer will develop a release script that handles this for us. | 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 |