Bazaarの紹介
=============

Bazaarとは？
-------------

Bazaarはみんなのコラボレーションを手助けするツールです。
これは(たとえばソフトウェアのソースコードなどの)ファイルのグループの変化の\
段階のスナップショットを提供するためにファイルの変更を追跡します。
この情報を利用することで、Bazaarはあなたの作業と他の人の作業の成果を簡単にマージします。

Bazaarのようなツールはバージョン管理ツール(version control systems: VCS)と呼ばれ\
長い間ソフトウェアの開発者の間で人気がありました。
Bazaarは使いやすく、柔軟で簡単にセットアップできるので、ソフトウェアの開発者だけでなく、\
テクニカルライター、ウェブデザイナー、翻訳者のようなファイルとドキュメントに取り組む\
人達にも理想的なツールです。

このガイドは、個人で使うのかチームで使うのかに関わらずBazaarのインストールと使い方の手引きをします。
すでに分散型のバージョン管理システムに慣れ親しんでおりすぐとりかかりたいのであれば、\
このセクションを流し読みして `さらに学ぶ`_ のセクションに移動するとよいでしょう。

バージョン管理システムの小史
-----------------------------

バージョン管理ツールは数十年の間に進化してきました。
簡単に説明すると、ツールは4世代に渡ります:

 1. ファイルのバージョン管理ツール、たとえばSCCS、RCS
 2. ファイルのバージョン管理ツール - 集中型、たとえばCVS
 3. ファイルのバージョン管理ツール - 第二世代集中型、たとえばSubversion
 4. ファイルのバージョン管理ツール - 分散型、たとえばBazaar

Bazaarの設計と実装は前世代のすべてのツールから学んだことに基づいています。
とりわけ、Bazaarは集中型と分散型の両方のバージョン管理モデルをサポートするので\
ツールを変更せずに複数のモデルに対応できます。

集中型 vs 分散型
-----------------

従来の多くのVCSツールはファイルのツリーに対する履歴(**リポジトリ**, *repository*)
を提供する中央サーバーが必要です。
ファイルに対する作業に取り組むために、ユーザーはサーバーに接続してファイルを\
**チェックアウト** (*checkout*) する必要があります。
チェックアウトにより、ユーザーが修正できるツリー(**作業ツリー**, *working tree*)ができます。
これらの変更を記録(**コミット**, *commit*)するためには、集中型のサーバーにアクセスする権限が必要で、\
コミットをする前に作業内容を最新バージョンとマージしなければなりません。 
このアプローチは集中型モデルとして知られます。

集中型モデルは長期にわたって有用であることを示してきましたが顕著な欠点がいくつかあります。
先ず第一に、集中型のVCSはバージョン管理機能を利用するためにはサーバーに接続できることを要求します。
二番目に、集中型のモデルは変更の **スナップショットの記録** のふるまいと変更の **公開**
のふるまいと密接にリンクさせます。 
これは状況によってはよいこともありますが別の状況では品質にわるい影響を与えることがあります。

分散型のVCSツールは単独の集中型のレポジトリではなく複数のレポジトリをユーザーとチームに持たせます。
Bazaarでは通常、履歴はバージョン管理されているコードと同じ場所に保存されます。
これによってユーザーは、オフラインであってもコミットするべきタイミングで変更をコミットできます。
ネットワークのアクセスは変更を公開するもしくは別の場所の変更にアクセスするときのみ求められます。

実際、分散型VCSツールを賢く使うことでオフライン作業を超えたいくつかの開発者にとっての利点があります。

 * 開発者が実験用のブランチを作るのが簡単になります
 * 仲間とのアドホックなコラボレーションが簡単になります
 * ルーチンタスクの時間が減ります - より創造的な活動に時間を割けます
 * "feature-wide" コミットの利用を通してリリース管理の柔軟性が増します
 * トランクの質と安定性を高い水準で維持でき、それによって作業者のストレスが少なくなります
 * オープンなコミュニティにおいて:

   * コア開発者ではない人が作成と変更の維持をしやすくなります
   * コア開発者が外部の開発者と共同作業をしてコアのチームに組み込むことが楽になります

 * 会社において、分散されたチームや外部のチームと連携するのが簡単になります

分散型VCSツールの集中型より優れた点の詳細な一覧に関しては、 http://wiki.bazaar.canonical.com/BzrWhy
を参照してください。


Bazaarの主要な機能
-------------------

Bazaarは現存する唯一のVCSツールではありませんが、多くのチームとコミュニティにとって\
よい選択肢になる優れた機能をいくつか持ちます。
別のVCSツールとの比較の要約はBazaarのWiki、 http://wiki.bazaar.canonical.com で見つかります。

多くの機能の中で、とりわけ強調するものがあります:
BazaarはPythonで書かれた完全にフリーなソフトウェアです。
結果として、改善に貢献することは簡単です。
手を貸して頂けるのであれば、 http://wiki.bazaar.canonical.com/BzrSupport を参照して頂くようお願いします。


さらに学ぶ
-----------

このマニュアルではBazaarの簡単な紹介と効果的な使い方を提供します。
すべてのユーザーは、少なくとも次の点について書かれたこの章の残りを読むことが推奨されます:

 * ユーザーが知る必要のある中心的な概念を説明します
 * Bazaarを利用した人気のある方法をいくつか紹介します

2-6章ではさまざまなタスクを実現するためにBazaarを使う方法を詳しく説明します。
Bazaarを使い始めた後で最初から最後まで読むことをほとんどの方にお勧めします。
7章とそれ以降はコアの機能を理解した上でBazaarを利用する際に手助けになる追加情報を提供します。
この教材は必要なときに任意の順番で読むことができます。

すでに他のバージョン管理ツールに慣れ親しんでいるのであれば、次のドキュメントを読んですぐに始めるとよいでしょう:

 * 5分でBazaar_ - ミニチュートリアル
 * Bazaarクィックスタートカード_ - よく使われるコマンドを1ページにまとめた要約。

加えて、オンラインのヘルプと `Bazaarユーザーリファレンス`_
は利用可能なコマンドとオプションのすべての詳細を提供します。

.. _5分でBazaar: ../mini-tutorial/index.html
.. _Bazaarクィックスタートカード: ../quick-reference/index.html
.. _Bazaarユーザーリファレンス: ../user-reference/index.html

このマニュアルがお役に立てることを願っております。Bazaarの残りのドキュメントの改善を提案したいのであれば、
メーリングリスト(bazaar@lists.canonical.com)に連絡して頂けるようお願いします。
