- gitにはリポジトリの一部 clone があるらしい。※マジで??
- 中央リポジトリがあるんだから、一部クローンでいいじゃん!という主張
- あれ?
- 「分散バージョン管理」の話だったような?
- mercurialは、ブランチ単位の clone しかない。
- 但し、任意のサーバ機能を内蔵している。
- コマンドライン hg serve -p 8080でサラッと起動して、簡易リポジトリサーバが稼働する。
- これを使って、作業者同士が直接チェンジセットを交換して、マージも可能
git は、複数の「分散リポジトリサーバ」を渡り歩いて摘み食いをするためのツール。
mercurial は、自分自身が「分散リポジトリサーバ」である。
早い話は、前者はブラウザ、後者はサーバであると言えましょう。使い勝手が大きく違うのは当たり前の話です。
とはいえ、リポジトリ全体をコピーせざるをえないmercurialでは、バイナリを多く扱うような案件では、サーバというよりは、作業者各自のディスク容量が問題になりそうです。新規cloneも非常に時間が掛かりますし。
この点を踏まえて、mercurl 2.0では、巨大ファイルの遅延cloneを実装してるらしい。
http://mercurial.selenic.com/wiki/LargefilesExtension
残念ながら小生は使ったことないです。リポジトリの互換性が無くなるので、cloneし直すしかないらしい。
総合的にいえば、やはり仕事として使うならmercurial、という確信を持ちました。gitの一部cloneには、「ボク自分の仕事しかやりません。見ません」というスタンスが見え隠れしてるからです。オイオイお前さんは社会人で、コレは仕事だろ。と。