決め手はSubversionからの移行の容易さとHTTPとの相性

Google CodeがGitではなくMercurialを採用へ

2009/04/28

 米グーグルは4月24日、ソフトウェア開発プロジェクトのホスティングサービス「Google Code」で、これまでのSubversionに加えて分散バージョン管理システム(DVCS)の「Mercurial」のサポートを開始すると発表した。現在はプレビューリリースで、一部のプロジェクト利用者に提供。一般リリースに向けて、いくつかの課題を解決していくという。Google Codeでは、Mercurialサポートのために、一般のMercurialがオブジェクトの保存に使うOSネイティブのストレージに代えて、グーグルの分散データベースシステム「BigTable」を使うように書き換えたという。

googlecode01.png

 DVCSとしては、MercurialのほかにGitやBazaarが知られている。従来からある中央管理型のバージョン管理システムに比べて、分散開発がやりやすいことから、普及が進んでいる。例えばGitではLinuxカーネルだけでなく、Samba、Fedora、Ruby on Rails、GNOMEなど多くのOSSプロジェクトがGitを採用している。Mercurialを採用するプロジェクトとしては、NetBeans、nginx、ntfs-3g、OpenJDK、OpenSolaris、Python、XEmacs、Xenなどがある。プロジェクトホスティングサービスでは、GitHub.comがGit利用者の間で人気が高まっているほか、老舗のSouceForge.netも2009年3月にはGit、Mercurial、Bazaarのサポートを開始している。

【参考記事:分散バージョン管理Git/Mercurial/Bazaar徹底比較

 こうした流れからグーグルがDVCSのサポートを進めているのは自然なことだが、注目は、最近勢いを増しているGitではなくMercurialを採用したことだ。

 Mercurialサポート計画の発表と同時にグーグルが公開した比較分析資料によれば、GitではなくMercurialを採用した理由は以下の通り。

  • 学習曲線。Gitは多くのコマンドとオプションがあり、初心者には取っつきにくい。Mercurialはドキュメントも整備されていて、初学者に親切。SubversionやCVSといった過去のツールと、用語やコマンドが似ている。
  • Windowsサポート。GitはLinux由来の特色が強く、Windowsプラットフォームで正しく使うにはCygwinを利用する必要があること。
  • メンテナンス性。Gitはgit-gcなど、レポジトリの定期的なメンテナンスが不可欠。
  • ヒストリの重要性。Gitは非常に強力で、コマンドを叩けばあらゆる操作が可能。リモートサーバ上のレポジトリもコマンド1つで消えてしまう可能性があり危険。一方、Mercurialは変更不可のオブジェクトが蓄積していくだけ。
  • ステートレスなHTTP接続を使った場合のネットワークのパフォーマンスの良さ。

 一方、Gitが有利な点としては、

  • Client Storage Managementの存在。Gitでは古いリビジョンのオブジェクト削除など、ローカルのストレージ管理が柔軟にできる。
  • マージの際に親リビジョンの数に制限がない。Mercurialでは2つだけ。複数リビジョンのマージを1つずつ行う方法が好ましいものの、一気に複数のリビジョンをマージしたいときに、Gitは1度の操作で行える。
  • Rebase機能。Gitではブランチを作成した後に、その派生元を切り替えることができる。ただし、グーグルがGitとMercurialを比較検討した後に、MercurialはRebase機能を採り入れているという。

という項目があったという。

関連リンク

(@IT 西村賢)

情報をお寄せください:

Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

注目のテーマ

ソリューションFLASH

「ITmedia マーケティング」新着記事

「イカゲーム」人気にドミノ・ピザも便乗 NetflixとCM共同制作の狙いは?
ケイト・トランブル氏がDomino’sのCMO(最高マーケティング責任者)に正式に就任して初...

2024年記憶に残った「生成AI活用事例」は? 課長以上に聞くマーケトレンド
アイブリッジは、マーケティング業務に携わっている従業員数100人以上の企業在籍の課長以...

IT部門にも教えたい 生成AIをマーケティングと営業に適用する最もふさわしいやり方
マーケティング、営業、カスタマーサポートなど顧客エンゲージメント領域における生成AI...