Bazaarだな
Git? Subversion? git-svn? - Archit!! の続き。
ノマドワークをしていく上ではやっぱり分散バージョン管理システム(DVCS)は必要なのだが、Gitでは私のワークフローを満たさないので他を探してみた。そこで見つけたのが、Bazaar。以前に
Bazaarでござ〜る。猿でもできる分散バージョン管理“超”入門 (1/4):ユカイ、ツーカイ、カイハツ環境!(20) - @IT
で読んでいたのを思い出した。いろいろ調べてみると、Subversionと使い勝手は似ているらしいことがわかった。そこで、試してみたら、ビンゴ!Bazaarでワークフローが確立できそうなので、ここでメモ。
インストール
本体
最初はMac Portsでインストールしようとしたが、いろいろと足らないものもあるみたいなので、素直にパッケージ版を使った方がいい。ここからパッケージをダウンロードして普通にインストールするだけ。
Eclipseのプラグイン
CVSやSubversion、Gitとは若干使い勝手が違うがbzr-eclipseというプラグインがある。以下の更新サイトからインストールできる。
http://verterok.com.ar/bzr-eclipse/update-site/
ローカルリポジトリの準備
中央リポジトリはあくまでSubversionでいくことにしているので、Subversionからチェックアウトしてローカルリポジトリを作ることになる。このあたりは、このページに書かれている「集中型のミラーを利用する」通りでいい。私の場合、Subversionのリポジトリ構成が
- HogeProject
- Document
- trunk
- branches
- tags
- Src
- trunk
- hogesrc
- branches
- tags
- trunk
- Document
のような構成になっている。この構成をいちいちローカルに作成するのは面倒くさい。ので、
bzr svn-import http://192.168.##.##/svn/HogeProject
とすると、階層構造が作られる。ただし、中身がないので、次に
cd HogeProject/Src/trunk bzr checkout http://192.168.##.##/svn/HogeProject/Src/trunk/hogesrc/ hogesrc
これでローカルリポジトリができたことになる。
作業コピーの作成
これはエクリプスから行う。
- 新規>プロジェクト で Bazaarの「Checkout as a new Project」で「次へ」。
- リストに上で作成したローカルリポジトリがあれば、「Use existing branch location」を選択し、リストからそれを選択。なければ、「Initialize a new branch location」を選択して「次へ」。
- 「Initialize …」の場合はBranch Locationの選択画面になるので、ローカルリポジトリのパスを選択し、「次へ」。上の例だったら、
/ローカルレポジトリのパス/HogeProject/Src/trunk/hogesrc/
となる。 - 「lightweight checkout」のチェックボックスは外した状態で「次へ」。
- プロジェクト名とロケーションを適切に記入し、「完了」。
ワークフロー
これで準備が整ったので、あとは通常通りEclipse上でソースをいじっていけばいい。
コミット
コミットはEclipseから
チーム > コミット
を選択。でてきたダイアログ下部の「Local commit」のチェックを入れ、他は外してておく。
push
一通り作業が終わり、Subversionへのコミットは、作業コピーのルートディレクトリ、上の例だったら、
/ローカルレポジトリのパス/HogeProject/Src/trunk/hogesrc/
から
bzr push
コマンドを発行すれば、Subversionにコミットされる。