チェックアウト機能を利用する
============================

ブランチをチェックアウトに変更する
-----------------------------------

ローカルのブランチを作りチェックアウトに変更したいのであれば、
``bind`` コマンドを使います::

  bzr bind bzr+ssh://centralhost/srv/bzr/PROJECT/trunk

たとえば以前のセクションで説明されたように ``push`` を使って集中型の\
ブランチを作った後でこれは必要です。

これをした後は、コミットはローカルに適用される前にバインドした\
ブランチに適用されます。

チェックアウトをブランチに変更する
----------------------------------

チェックアウトを通常のブランチに変更したい場合、 ``unbind``
コマンドを使います::

  bzr unbind

この後で、コミットはローカルのみに適用されます。

チェックアウトを入手する
-------------------------

集中型のブランチを利用してチームで作業するとき、1人の人物が以前の\
セクションで示される初期の内容を提供する必要があります。
その後は、それぞれの個人が ローカルのチェックアウト、すなわち\
彼らが変更を行うサンドボックス、を作るために ``checkout``
コマンドを使用します。

SubversionとCVSと異なり、Bazaarでは ``checkout`` コマンドは最新の内容を\
保持している作業ツリーを作るのに加えて履歴のローカルな全コピーを作ります。
``diff`` や ``log`` といったオペレーションは速く中心位置から接続していない\
ときも利用できることを意味します。

.. _getting-a-lightweight-checkout:

軽量チェックアウトを入手する
-----------------------------

Bazaarはバージョン履歴を効率的に保存するために役立つ一方で、\
履歴が望まれていないときがあります。
たとえば、チームがBazaarを利用して集中型でウェブサイトの内容を\
管理している場合、公開ウェブサーバー上の内容のチェックアウトを\
更新するのと同じぐらいリリースプロセスは単純です。
この場合、次の理由からその場所にダウンロードする履歴は望まないでしょう:

 * 必要のない履歴を保有することでディスクスペースを無駄遣いする
 * 秘密を維持したいBazaarブランチを公開する

Bazaarで履歴のないチェックアウトを入手するには、
``--lightweight`` オプションを使います::

  bzr checkout --lightweight bzr+ssh://centralhost/srv/bzr/PROJECT/trunk

もちろん、これによって通常のチェックアウトの多くの利点は失われますが、
役に立つ場合と時を選ぶトレードオフです。
``--lightweight`` オプションは、すべてのブランチではなくチェックアウト\
のみに適用されます。

注: コードベースが実際に大きくコンピュータ上のディスクスペースが限られている場合、
`共用リポジトリ  <branching_a_project.html#a-reminder-about-shared-repositories>`_,
`スタックブランチ <stacked.html>`_,
`チェックアウトを再利用する <reusing_a_checkout.html>`_
を含めたすべてのオプションを必ず考えてください。


最新の内容に更新する
---------------------

ロックステップでの他の人との連携の重要な面の1つはあなたのチェックアウトを\
集中型のブランチで行われた最新の変更に更新し続けることです。
SubversionもしくはCVSで行うように、Bazaarでは ``update`` コマンドを使用して\
次のように行います::

  bzr update

ブランチに結びつけられたブランチで利用可能な新しいリビジョンを入手して\
もしあればローカルの変更をマージします。

コミットの失敗を扱う
---------------------

``commit`` を実行する前にチェックアウトを最新にしなければならないことに注意してください。
Bazaarはこの点でSubversionもしくはCVSよりも厳密です - 変更したファイルだけでなく\
すべてのツリーを最新にする必要があります。
Bazaarはあなたが最後に更新した後で中心位置にリビジョンが追加されたことを検出すると
``update`` を実行するようにあなたに頼みます。

バインドされたブランチへのネットワーク接続が失われると、コミットは失敗します。
いくつかの代替の次善策は次のセクションで説明します。
