分散バージョン管理Git/Mercurial/Bazaar徹底比較

今までは、ずっとSVNを使ってきましたが、GITのいい点に動揺しずつあります。
以下は自分のために、メモしました。


表 SVN、Git、Mercurial、Bazaarの機能比較
主な特徴 SVN Git Mercurial Bazaar
最新バージョン(2008年12月現在) 1.5.4 1.6.0.4 1.1 1.10
ライセンス ASL 2 GPL v2 GPL v2 GPL v2
集中型/分散型 集中型 分散型 分散型 分散型
代表的な採用プロジェクト 多数 Linuxカーネル

Ruby on Rails

AndroidX.org

Samba、Wine、

Perl 5、そのほか

OpenJDK、

Mozilla

OpenSolaris

NetBeans

Xenそのほか

Ubuntu

Mailman

MySQL

そのほか

日本語サポート(※比較ポイント【1】)
Windows対応(※比較ポイント【2】)
GUIツールWindows TortoiseSVN

RapidSVN

TortoiseGit(0.2.0.0)、

git-gui、gitk、qgit

TortoiseHG(0.5)、

Hgtk

bzr-gtk、qbzr
GUIツールLinux RapidSVN qgit、git-gui、gitk Hgtk、hgct bzr-gtk、qbzr
Eclipseサポート(※比較ポイント【3】) Subversive(0.7.4)、

Subclipse(1.4.5)

EGIT

(0.3.1)

Mercurial Eclipes

(1.2)

bzr-eclipse

(1.1.0)

VisualStudioプラグイン AnkhSVN(2.0) × Mercurial SCC plugin for MS Visual Studio

(1.0.1)

×
Tracプラグイン

プラグインでサポート)


プラグインでサポート)


プラグインでサポート)

SVNとの連携

(git-svnをインストールすれば可能)

△(hgsvnをインストールすれば可能。

hgのリポジトリの変更点をSVN側へ反映するにはSVNを利用)

記述言語 C、

Java(SVNKit)

C Python Python
ファイル名変更時の変更履歴の引き継ぎ ×  
Rebase機能 ×

(bzr-rebaseプラグインで対応)

Bisect機能 ×

(Bazaar Bisectプラグインで対応)

Shelve/Unshelve ×

(git stash)


(hgshelveエクステンション)

パッチマネージャ ×

(guilt)


Mercurial Queue)

×
メール送信可能なパッチ作成 ×

(Patchbombエクステンション)

電子署名付きチェンジセット ×

(タグのみ可能)


(GPGエクステンション)

組み込みサーバ

(git instawebにより可能。

ただしWebブラウザでの閲覧のみ)

○(hg serve) ○(bzr serve)
HTTPプロトコルでの共有方法 WebDAV WebDAV

git instawebコマンド

CGI、hg

serveコマンド

CGI/WebDAV

WebDAVWebDAVプラグインにより対応)

中央リポジトリ利用時のアクセス制御(※比較ポイント【4】) ファイル/ディレクトリ単位で設定可能。

read/write権限の設定まで可能

リポジトリ単位で設定可能 ファイル/ディレクトリ単位で設定可能。

ユーザー別のread/writeの設定は不可

リポジトリ単位で設定可能
無料リポジトリ 多数 GitHub

assembla

SouceForge.JP、

CodeRepos

itbucket、

assembla

ProjectKenai、

freeHg.org

Launchpad

資料元:
http://www.atmarkit.co.jp/fjava/rensai4/devtool03/devtool03_5.html