Contents
概要
分散型SCMの1つ。
傾向としてJava/Python系のプロジェクトではMercurialが採用されることが多く、Linux/Ruby系ではgitが採用される事が多い模様。尚、Google CodeではMercurialが採用された。
http://mercurial.selenic.com/
Subversionと違い
SubversionはMercurialと比べる場合、SVNは中央集権型SCM、HGは分散型SCMと呼ぶ。
分散型の特徴としては、中央集権型と違いリポジトリ自体が分散されているため、大規模開発や多人数での開発に適している事にある。また、ブランチを作りやすいため、オープンソースのプロダクトを自社管理する事などにも向いている。また、それに伴い2つのリポジトリをマージする機能に長けている。
一方、従来型の中央集権型のSCMはリポジトリは1カ所にあるだけであり、運用・管理の面ではシンプルになる。しかし、リポジトリにアクセスできない環境では使えなかったり、ブランチやマージの機能に難がある。
中央集権型SCMの特徴
- リポジトリは1つ
- 管理しやすい
- ブランチの管理が面倒
- リポジトリにアクセスできないと使えない
- マージ機能が貧弱(な場合が多い)
分散型SCMの特徴
- リポジトリは複数
- ローカルリポジトリ
- 分散バックアップ
- 管理が煩雑
Mercurial vs git
機能的に大きな差があるわけではないので最終的には好み。
個人的にはMercurialを採用している理由としては以下の点がgitより優れている事。
Windowsで扱いやすい(http://tortoisehg.bitbucket.org/)
- 最初に覚えるオプション類がgitに比べて少なくて済む
- Pythonが好き
- Google CodeやJava系プロジェクトで採用されている
※一番大きいのはWindowsで扱いやすい事だが、Macがメインの人などは気にしなくてもいい。
導入
Linux
yumでインストールする(rpmforge)。
詳細は省略。
Apache連携
調査中。
Mac
Mac portからインストールする。
詳細は省略。
Windows
TortoiseHg(http://tortoisehg.bitbucket.org/ )をインストールすることで、WindowsのエクスプローラーからGUIを使った操作が可能となる(シェルからも操作可能)。
Eclipse
Pluginをインストールする。 http://www.vectrace.com/mercurialeclipse/
Update Site
