トップ «前の日記(2005-06-18 [Saturday]) 最新 次の日記(2005-07-01 [Friday])» 編集

Catra's Diary

2005|01|02|03|05|06|07|10|
2006|05|07|09|10|11|
2007|06|07|08|
2008|01|02|07|09|11|12|
2009|06|
2010|03|07|
2011|01|
2013|05|

2005-06-20 [Monday]

_ SCM: mercurial

<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 にあがっていた。


トップ «前の日記(2005-06-18 [Saturday]) 最新 次の日記(2005-07-01 [Friday])» 編集