Bazaarだな

Git? Subversion? git-svn? - Archit!! の続き。
ノマドワークをしていく上ではやっぱり分散バージョン管理システム(DVCS)は必要なのだが、Gitでは私のワークフローを満たさないので他を探してみた。そこで見つけたのが、Bazaar。以前に
Bazaarでござ〜る。猿でもできる分散バージョン管理“超”入門 (1/4):ユカイ、ツーカイ、カイハツ環境!(20) - @IT
で読んでいたのを思い出した。いろいろ調べてみると、Subversionと使い勝手は似ているらしいことがわかった。そこで、試してみたら、ビンゴ!Bazaarでワークフローが確立できそうなので、ここでメモ。

インストール

本体

最初はMac Portsでインストールしようとしたが、いろいろと足らないものもあるみたいなので、素直にパッケージ版を使った方がいい。ここからパッケージをダウンロードして普通にインストールするだけ。

Eclipseプラグイン

CVSSubversion、Gitとは若干使い勝手が違うがbzr-eclipseというプラグインがある。以下の更新サイトからインストールできる。
http://verterok.com.ar/bzr-eclipse/update-site/

ローカルリポジトリの準備

中央リポジトリはあくまでSubversionでいくことにしているので、Subversionからチェックアウトしてローカルリポジトリを作ることになる。このあたりは、このページに書かれている「集中型のミラーを利用する」通りでいい。私の場合、Subversionリポジトリ構成が

  • HogeProject
    • Document
      • trunk
      • branches
      • tags
    • Src
      • trunk
        • hogesrc
      • branches
      • tags

のような構成になっている。この構成をいちいちローカルに作成するのは面倒くさい。ので、

bzr svn-import http://192.168.##.##/svn/HogeProject

とすると、階層構造が作られる。ただし、中身がないので、次に

cd HogeProject/Src/trunk
bzr checkout http://192.168.##.##/svn/HogeProject/Src/trunk/hogesrc/ hogesrc

これでローカルリポジトリができたことになる。

作業コピーの作成

これはエクリプスから行う。

  1. 新規>プロジェクト で Bazaarの「Checkout as a new Project」で「次へ」。
  2. リストに上で作成したローカルリポジトリがあれば、「Use existing branch location」を選択し、リストからそれを選択。なければ、「Initialize a new branch location」を選択して「次へ」。
  3. 「Initialize …」の場合はBranch Locationの選択画面になるので、ローカルリポジトリのパスを選択し、「次へ」。上の例だったら、
    /ローカルレポジトリのパス/HogeProject/Src/trunk/hogesrc/
    となる。
  4. 「lightweight checkout」のチェックボックスは外した状態で「次へ」。
  5. プロジェクト名とロケーションを適切に記入し、「完了」。

ワークフロー

これで準備が整ったので、あとは通常通りEclipse上でソースをいじっていけばいい。

コミット

コミットはEclipseから
チーム > コミット
を選択。でてきたダイアログ下部の「Local commit」のチェックを入れ、他は外してておく。

push

一通り作業が終わり、Subversionへのコミットは、作業コピーのルートディレクトリ、上の例だったら、
/ローカルレポジトリのパス/HogeProject/Src/trunk/hogesrc/
から

bzr push

コマンドを発行すれば、Subversionにコミットされる。