HOME / コンピュータTips / UNIXツール / Mercurialでレポジトリ管理
Mercurialでレポジトリ管理 †
CVSに変わるレポジトリ管理ツールを何にしようかと考えており、 スタンダードにsvnにしようかと考えていたわけですが。
案外、スタンダードがなさそう・・・・つまり、ポストcvsはなさそうなので、他も色々見てみることにしました。
わたしの個人的な結論は、ウノウラボの方のブログを見て、Mercurialがあまりに便利そうだったので、これを自分的にも採択。
Mercurialの分散レポジトリ管理は、とっても便利です。cvsに比べると、次のようなことを解決してくれます。
- レポジトリ分散というと難しいが、要はCVS風にいえば「メイン」に対して、自分の所にもレポジトリそのもののクローンがあると考えても良い。
- クローンは自分だけのものなので、好きなときにコミット出来る。
- クローンはローカルに置くため、ネットワークアンリーチャブルでもコミットできる。
- 中途半端なバージョンをクローンに対してcommitしても、誰も困らない。
- 従って、ここらへんでレポジトリに取っておきたいんだけど、他の人に迷惑がかかるからコミットできないなぁ・・・・といったような、cvsで多人数作成の時の良くある不満の解決ができる
- CVSディレクトリを至る所に作らないので、色々面倒でない。
- ディレクトリはトップディレクトリに.hgがあるだけである。
- CVSではワーク=コピーであったが、このため、動作する実体を直接レポジトリに入れることは出来る。
- 出来なくはないが、cvsで/etc以下の設定を管理することは難しかったので、システム管理者はrcsという古典的なものをしばしば使っていた。hgではもう少し容易にできる。
- レポジトリそのものはcloneなどが出来るため、様々な所に持って行くことが出来る。
- そのため、ブランチと言う概念ではない。
ああ、だんだん概念的になると難しいので止めよう(笑)
あんちょこ †
レポジトリの初期化 †
レポジトリに入るべきTOPディレクトリで、下記のように入力。
hg init
すると、そこに.hgというディレクトリが出来る。
レポジトリに追加 †
ほとんどcvs addと同じであるが、ディレクトリは再帰的に格納されるので注意。
hg add ファイル名(群)
レポジトリに格納 †
ほとんどcvs commitと同じ。
hg commit 〜
レポジトリのコピー †
別のエリアにレポジトリそのものをコピーする場合、 cp -r と同じような感じで、SRC DISTと指定してコピーすることが出来る。
hg clone SRC DIST
DISTがローカルディレクトリならば、ローカルでのレポジトリ状況のチェックにも使える。
対象はsshの先でも良いし、SRCならば、http経由でも出来る。 ただし、
ssh://ユーザ名@ホスト名//ディレクトリ
ホスト名の後ろに//が入ることに注意。


