Locked History Actions

Diff for "Bazaar"

Differences between revisions 12 and 13
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
以下はSubversionの経験があることを前提とする。
また、コマンドラインでの操作ではなく、GUI操作を中心とする。
さらに、IDE環境での使い方も見ていく。

== インストールと設定 ==

 * [[http://wiki.bazaar.canonical.com/WindowsDownloads]]からWindows用のstandaloneインストーラをダウンロードし、実行する。
 * select componentsの選択肢で、「Windows Shell Extensions」「Core Documentation - Japanese」をチェック
 * あとはデフォルトの状態でインストールする。

これでGUIツールとしては、Bazaar ExplorerとTortoizeBzrが使えるようになる。もちろんTortoiseBzrはTortoiseSVNと同様にシェル統合されている。
少なくとも自分の名前(メールアドレス)をbazaar側に登録しないと何もできないため、これをBazaar Explorerにて行う(コマンドで行う方が楽かと思うがここはあえてGUIで行う)。

 * Bazaar Explorerを起動する。
 * Bazaarメニューの「全てのコマンド」を選択する。
 * 三段目の「コマンド」のドロップダウンでwhoamiを選択する。
 * その下に名前あるいはメールアドレスを入力する。
 * OKをクリックする。

== Subversionとの違い ==

=== リポジトリとのバインド ===

Subversionではリポジトリからチェックアウトした作業コピーにて作業を行い、コミットによって変更をリポジトリに反映させる、という手法をとる。チェックアウトされたディレクトリの中の.svnディレクトリには「チェックアウト元」のURLが記録されているため、(当たり前のようだが)「どのリポジトリにコミットするか」を指定しなくとも、自動でコミットすべきリポジトリに接続してくれる。

Bazaarでもこのような使い方ができる。Bazaarではリポジトリから作業コピーを作る際に、チェックアウトにするかブランチにするかを選択でき、前者をおこなうとSubversionと同様の動作になるようだ(全く同じではない)。

=== 「ブランチ」という言葉 ===

Bazaar関連のドキュメントを見ると、何の説明もなく「ブランチ」という言葉を使用しているが、この言葉はSubversionで慣習的に用いた(少なくとも私が用いていた言葉)とは異なるようだ。

Subversionでの「ブランチ」は、例えばtrunkのコピーとしてbranches/customizedを作成し、そこに販売中の製品を改良したカスタマイズ製品を作成していくような場合に用いる。だから、このbranches/customizedをチェックアウトして作業コピーを作成する場合、作業コピー自体を「ブランチ」とは呼ばない。あくまでも「ブランチの作業コピー」である。

これに対し、Bazaarの場合は、リポジトリとバインドされていない「作業コピー」(これを作業コピーと呼んでいいかわからないが)はすべて「ブランチ」と呼ぶらしい。

=== リポジトリの構造 ===

上記でBazaarでは、Subversionと同様に「リポジトリからチェックアウトした作業コピーで作業」するほかに、「ブランチ」としてリポジトリのコピー(この言葉は便宜的に使っているもので正式なものではない)を作成する方法があると書いたが、Subversionと異なり、リポジトリのみで作業を進めることもできる。

なぜなら、Subversionのリポジトリは単なるデータベースであって、作業場所とすることはできない。例えば、ディレクトリを新規作成してその中にSubversionリポジトリを作成すると、以下のようなディレクトリが作成されるが、
{{{
conf
db
hooks
locks
}}}
ユーザ側がこれらを直接操作することは無い。

これに対し、ディレクトリを新規作成してその中にbazaarのリポジトリを作成すると(作成オプションにもよるが)、
{{{
.bzr
}}}
というディレクトリができるのみである。ユーザ側はここを自由に作業場所とすることができる。

つまり、Subversionでの「リポジトリ」は、データの集約場所のようなイメージだが、Bazaarでの「リポジトリ」はユーザの作業場所である。
Subversionでは、あくまでもその中央リポジトリに対して、各ユーザそれぞれの複数の作業コピーがぶらさがっているイメージであるが、Bazaarの場合は、中央にあろうが、各ユーザが持っていようが、リポジトリの機能としては対等であるようだ。

それらの対等なリポジトリ間で変更をどのように「マージ」するかがBazaarの課題であると思われる。



== ちょっと使ってみる ==

以下ではあくまでもGUIのみを使って適当に使ってみる。

Subversionから移行しようといったんは考慮したが、
現時点では日本語資料どころか英語のドキュメントも不十分であると結論したため、調査を打ち切った。

Bazaar

Subversionから移行しようといったんは考慮したが、 現時点では日本語資料どころか英語のドキュメントも不十分であると結論したため、調査を打ち切った。

参考サイト