<URL:http://www.selenic.com/mercurial/>。 @IT:Linux Kernel Watch 6月版 より。
実体は Python スクリプト。Windows でも動きそうだが、ActivePython を使っている場合は ./setup.py 実行中に Visual C++ 7.1 が必要と言うメッセージが出て中断。 pyMinGW を検討中。
$ time hg init real 0m0.124s user 0m0.107s sys 0m0.017s $ time hg status real 0m1.320s user 0m0.579s sys 0m0.226s $ time hg addremove real 0m0.873s user 0m0.670s sys 0m0.198s $ time hg commit real 1m5.913s user 0m28.554s sys 0m14.562s # ここで gcc-3.3.2 を上書き。 $ cat ../del1.txt | xargs rm $ time hg addremove real 0m44.823s user 0m8.257s sys 0m5.088s $ time hg commit real 1m8.720s user 0m28.994s sys 0m5.432s # ここで gcc-3.3.4 を上書き。 $ cat ../del2.txt | xargs rm $ time hg addremove real 0m43.061s user 0m7.369s sys 0m4.731s $ time hg commit real 2m9.318s user 1m28.856s sys 0m5.561s # ファイル1個を更新して commit. $ vi README.SCO $ time hg commit real 0m42.179s user 0m7.510s sys 0m4.493s $ vi README.SCO $ time hg commit README.SCO real 0m5.400s user 0m0.730s sys 0m0.104s # 使用する領域。 $ du -s . 339995 . $ du -s .hg 155937 .hg
git と比較しても、 遜色ない速度で処理してくれる。3.3.2、3.3.4 コミット時にかかる時間が git よりも長いのは、 多分差分をとっているから。 かかる時間の多くは HDD 待ちのようで、高速な HDD や RAID-0 などを使うとさらに短時間で処理できそう。
今のところまだ全部が実装されているわけではないが(特に異常系の動作確認がまだのようだ)、 このまま実装が進んで完成度が高まれば結構使えるリビジョン管理システムになるかも。
気になるのは、差分で管理しているはずなのにこの場合は git よりも領域が必要になる所。 しかし Linux カーネル(Bitkeeper 時代も含む)の全履歴では git が 3.5GB なのに対して mercurial で 300MB 程度という話。 git との比較 が ML にあがっていた。