subversion/mercurialの比較

Subversionには便利なsvkというものがあって、それを使うとローカルにコミットすることができて、疑似分散型のようにできるらしい。時代は確実に進歩していくな。

          _Y_
            r'。∧。y.
         ゝ∨ノ       私がPCを離れて
          )~~(             遊んでいる間に
         ,i>   <i     文明はどんどん発達し
         i>   <i.     ていく・・・・・・。
`=.,,ー- ...,,,__  |,r'''"7ヽ、|  __,,,... -ー,,.='
             >ーz-,,,...--,‐,‐;;:'''""~
  ~''':x.,,  ~"|{ G ゝG }|"~  ,,z:''"                     ___
      ~"'=| ゝ、.3 _ノ |=''"~      <ー<>        \
        .|))    ((|        / ̄ ゙̄i;:、      「 ̄ ̄ ̄ ̄| ̄| ̄ ̄ ̄\
             ))|       r'´ ̄「中] ̄`ヾv、   `-◎──────◎一'
                   ├&#8212;┤=├&#8212;┤ |li:,
                   |「 ̄ |i ̄i|「.//||「ln|:;
                   ||//__|L_」||__.||l」u|:;
                   |ニ⊃|  |⊂ニ| || ,|/
                   |_. └ー┘ ._| ||/
                   ヘ 「 ̄ ̄ ̄| / 

余計なAA貼って、ずれを調整している場合じゃない。恥ずかしながらsvkが何かよく知らなかったのだが、どうやらsvnコマンドの代替として、レポジトリからpullしてきてくれるもののようだ。で、pullしてきたものに対していつも通りcoとかciとかやるものらしい。
個人的には、フーン…というとこなんだが、それはなぜかというと、野良鯖とかでsubversionレポジトリを使っていて、その野良鯖が死んだ場合のリスクが非常に高いのがsubversionだからである。とくに個人利用の場合、滅多に落ちないサーバなんぞ用意できるわけがないので、レポジトリのバックアップを別マシン(別パーティション)にとっておくことになるが、それはそれで結構な手間になる(しかも多分、svkレポジトリからではsvnレポジトリを再現できないんだよね?)。
反面、mercurialだとhg cloneするだけでレポジトリのクローンを引っ張ってくることができるし、それをcoするのも簡単。で、これは単なるクローンなので、もしもサーバ側のレポジトリが何らかの事故で失われても、ローカルのバックアップを再び使うことができる*1。どちらのレポジトリが中央だってことはなくて、クローンする度にどんどんコードのバックアップが増殖していく。こんなに素晴らしいことってなくね? 反面、レポジトリのバックログが全部cloneされた中身にあるので、ローカルのディスクをちょっとばかし圧迫することにはなるけど、この富豪プログラミングの時代だからそれは大丈夫なはず。

*1:hgのバージョンを合わせておく必要はあるが。