a fast, lightweight Source Control Management system designed for efficient handling of very large distributed projects.

Googleは24日(米国時間)、ホスティングサービスGoogle Codeにおいてバージョン管理システムとして新しくMercurialのサポートを追加したと発表した。まだプレビューという段階で一般公開はされていない。利用するには申し込みが必要。プロジェクトごとに特定のユーザが試せる状況になっている。これでGoogle CodeはSubversionに次いでMercurialをサポートすることになる。

バージョン管理システムは大きく分けて集中型と分散型がある。代表的なところでは集中型にCVSとSubversion、分散型にGit、Mercurial、Bazaar、Monotoneなどがある。Google Codeはこれまで集中型のSubversionを採用してきたが、これに分散型も追加することになった。分散型の追加と、その選択肢としてMercurialを選んだのは次の2つが主な理由だと説明されている。

  1. 既存のSubversionを使いながらも、分散バージョン管理システムを使いたいと考えているユーザをサポートするため。Mercurialはコマンド体系がSubversionに似ており、ドキュメントも、Tortoise Hgといった優れたツールも存在しているため分散型を適用するにあたってMercurialを採用した方がユーザの障壁が低いと考えた
  2. Google CodeインフラストラクチャがHTTPベースサービスとして構築されていることを考えると、HTTPサポートに関してパフォーマンス特性が優れていたMercurialを採用するのがいい方法だと判断した

このところ有名なオープンソースソフトウェアプロジェクトが集中型のバージョン管理システムから分散型のバージョン管理システムへ乗り換える事例が増えている。特にMercurialとGitはその際に候補として残るプロダクトで、最終的には(1)CVS/Subversionの操作性に似ているかどうか、(2)プログラミング言語がRubyがPythonか、などの理由で採用が決定されることが多い。Ruby系プロダクトはホスティングサービスの関係でGitを採用することが多く、Pythonで開発されているMercurialはPython系プロダクトでの採用理由になることがある。

GoogleではGoogle App Engineで最初にサポートした言語がPythonであったように、Pythonを好むデベロッパを抱えている。Google Codeでの検討にそうした事実が関与しているかどうかは不明。