! Feature !! Git !! Mercurial
|
|-
|
! Ad-hoc Builds
|
-|
|
-|
|
+| width=45% | As of git 1.5.3, there is a concept known as [http://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects|submodules] The [http://rklophaus.com/articles/20100124-SubmodulesAndSubreposDoneRight.html|subgit] script wrapper is available. |
+| width=45% | Mercurial has subrepos that support multiple VCS systems including CVS, subversion, and git. The [http://rklophaus.com/articles/20100124-SubmodulesAndSubreposDoneRight.html|subhg] script wrapper is available. |
|-
|
! Keywords
|
-|
|
-|
|
+| "[http://www.gelato.unsw.edu.au/archives/git/0610/28891.html| 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. |
+| [http://mercurial.selenic.com/wiki/KeywordExtension|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 [http://tonkersten.com/archives/2009/11/20/its_broken_again/index.html|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 [http://code.google.com/p/msysgit/|msysgit] but so far attempts to get [http://code.google.com/p/tortoisegit/|TortoiseGit] working with that have not been successful. |
+| [http://tortoisehg.bitbucket.org/|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: {attachment id=1056}. Note that the script expects the repository to be stored in /cvsroot/bitweaver -Waterdragon |
|
+| #Migrate each module separately, and [http://stackoverflow.com/questions/12843/how-to-combine-two-projects-in-mercurial|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):{code source=bash}/home/git/ciabot.py ${refname} \ |
+$(git rev-list ${oldrev}..${newrev} | tac){/code} |
+|[http://mercurial.selenic.com/wiki/HgciaExtension|hgcia] extension is painless and can easily support local repo's |
+|} |
|
-!Mercuial
|
-
|
-!!Migration
|
-#Migrate each module separately, and then combine
|
-
|
-[http://stackoverflow.com/questions/12843/how-to-combine-two-projects-in-mercurial]
|
|
|