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

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

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

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

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

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

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

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

bzr unbind

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

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

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

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

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

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

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

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

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

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

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

最新の内容に更新する

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

bzr update

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

コミットの失敗を扱う

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

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