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.
A Simple TableFeature | Git | Mercurial |
---|
Ad-hoc Builds | As of git 1.5.3, there is a concept known as submodules The subgit script wrapper is available. | Mercurial has subrepos that support multiple VCS systems including CVS, subversion, and git. The subhg script wrapper is available. |
---|
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. The reason it might be regarded is stupid is that you can track every tag and branch to a SHA id, providing precise knowledge of the state of the code for a release (assuming one might use a tag for a release). Consider how jquery uses tags on github to denote release versions. | 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 | Mecurial support is available from the package manager on most distros |
---|
Windows Installation | The reference for installation of git on windows is msysgit but so far attempts to get TortoiseGit working with that have not been successful. | TortoiseHg provides a complete installation in a single package. TortoiseHg is also available on linux for users needing cross OS support. |
---|
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 |
---|
CIA/IRC notifications | There are three scrips - ciabot.pl which is old, ciabot.sh which is configuration free, and ciabot.py which is fast. For the central repo, the following like should be added to foo.git/hooks/update (one line is broken here simply for formatting of his comparison table):
/home/git/ciabot.py ${refname} \ $(git rev-list ${oldrev}..${newrev} | tac)
| hgcia extension is painless and can easily support local repo's |
---|