Locked History Attachments

Mercurial

概要

分散型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