バージョン管理システム比較
注意 : このページ「バージョン管理システム比較」は、現在書きかけの状態です。完成版に向けて、今後加筆・修正します。また、本ページの内容は全体的な整合性が取れていない可能性があります。 |
本ページは、各バージョン管理システムをソフトウェア開発基盤として使用する場合の特徴を比較した内容を記述します。
前提条件
- 管理対象
- ソースコード
- ファイル名・ディレクトリ名は半角英数字のみ
- テキストファイル
- 仕様書
- ファイル名・ディレクトリ名は日本語を含む
- 基本的にはバイナリファイル(Microsoft Excel等)
- ソースコード
- OS : Windows 7 Enterprise 64bit (32bitも可)
- 使用するIDE
- Visual Studio 2010 Profesional : C#
- Pleiades All in One 3.6.2.20110228 : Java
- GUIフロントエンドを優先的に使用
比較対象
- Subversion
- TortoiseSVN-1.6.14.21012-x64-svn-1.6.16.msi
- Git
- Git-1.7.4-preview20110204.exe
- Tortoisegit-1.6.5.0-64bit.msi
- Mercurial
- TortoiseHg 2.0.2 with Mercurial 1.8.1 - x64 Windows
- Bazaar
- bzr 2.3.1(Standalone版インストール)
分散バージョン管理システムのメリット
あくまで私の主観です。
- 中央リポジトリからの独立したバージョン管理
- 他人はまだ公開したくないが、一時的にコミットをしたい状況に対応
- 他リポジトリと常時に繋がっている必要が無い
- 外出する際に持ち出したデータに対してもバージョン管理ができる
マージの容易性に関しては、そのような機会が少ないので、個人的にメリットを享受するまでに至っていません。
比較結果
Subversion連携
Subversionを親リポジトリとして使用する場合の、使用ツール(プラグイン)およびコマンド例を記述します。
- Git
- git-svn(Gitインストール時に付属)
- クローン時のコマンド(例) :
- git svn clone svn://localhost:8001/test01
- Mercurial
- hgsubversionをインストール
- Bazaar
- チェックアウト・コミット・プッシュは、特にSubversionであることを意識せず操作可能
特記事項
- Gitのクローン時のコマンドを「git svn clone file:///c:/work/svn-repos」とすると、「(前略)Expected FS format '2'; found format '4'(以下略)」と出て操作が失敗します。git-svnで扱えるSubversionファイルシステムのバージョンが古いためにエラーが出たと推測します。
- Mercurialのクローン元URLを「C:\...」と指定すると失敗するので「file:///C:/...」とする必要があります。
バイナリファイルに対する操作性
バージョン管理されているバイナリ(非テキスト)ファイルの、過去の履歴を閲覧するときの操作性に関する比較です。
- Git
- TortoiseGitの「Show log」画面の下部から、過去のバイナリファイルを関連付けされたアプリケーションで直接開ける
- UIがTortoiseSVNに近い
- Mercurial
- 過去のバイナリファイルはWindowsメモ帳でしか開けない。
- メモ帳で開いたファイルをそのまま保存してもファイルが破損していて開けない。
- リビジョンごとのエクスポートで代替するしかない
- 過去のバイナリファイルはWindowsメモ帳でしか開けない。
- Bazaar
- QBzrの履歴の「ファイル表示」を選択しても、専用ビューアが開き、外部保存および関連付けされたアプリケーションによる表示はできない
日本語ファイル名・ディレクトリ名の取り扱い可否
Subversionでは特に問題なく使用できた日本語ファイル名・ディレクトリ名が、特にGit・Mercurialでは問題が出てきます。
調査がかなり中途半端なので、後日追加調査します。
- Git
- ディレクトリ名は文字化けする
- 影響範囲は要調査
- ファイル名は問題無し
- ディレクトリ名は文字化けする
- Mercurial
- 日本語ディレクトリの取り扱い不可
- コミット時、「abort: 指定されたパスが見つかりません。」と表示される。
- RedmineからMercurialリポジトリ参照時、日本語ファイル名に対するリンクが消える状況が発生
- 日本語ディレクトリの取り扱い不可
- Bazaar
- 特に問題なし
- エラー発生時のダイアログ(何のエラーかは失念)に出力されるメッセージに含まれる日本語パスが文字化けしているが、影響不明
日本語を含む作業用ディレクトリ名
(調査中)
IDE連携
(調査中)
名前 | Visual Studio 2010 | Eclipse 3.6 (pleiades) | 備考 |
---|---|---|---|
Subversion | |||
Git | |||
Mercurial | |||
Bazaar |
その他
特になし。