スタックブランチ(stacked branch)は別のブランチのリビジョンを見つける方法を知っています。 スタックブランチはユニークなリビジョンのみを保存することで、速く作れたり効率的に保存したりします。 これらの観点から、スタックブランチは共用リポジトリと似ています。 しかしながら、スタックブランチは追加の利点があります:
これらの恩恵によって実験ブランチとコードホスティングサイトを含めたさまざまなシナリオに対してスタックブランチは理想的なものになります。
スタックブランチを作成するには、branchコマンドの stacked オプションを使用します。 例です:
bzr branch --stacked source-url my-dir
このコマンドによって my-dir がローカルリビジョンなしのスタックブランチとして作成されます。 定義されると、 source-url に関連づけされた公開ブランチは スタックドオン(stacked on) の位置として使われます。 さもなければ、 source-url は スタックドオン の位置になります。
スタックチェックアウトを直接作成する機能はまもなくサポートされる予定です。 それまでの間、2段階の処理が必要です:
多くのプロジェクトの大部分の変更は 開発トランク or 現在の安定 ブランチといった既存のブランチを基礎としています。 これらの1つにスタックされた新しいブランチの作成は push コマンドを利用して 次のように簡単にできます:
bzr push --stacked-on reference-url my-url
このコマンドによって reference-url にスタックされた my-url で新しいブランチが作成され reference-url でまだブランチにない現在のブランチのリビジョンのみを格納します。
ローカルブランチがスタックブランチとして作成された場合、 push するには --stacked オプションを使うことが可能で stacked-on な位置が明確になります。例です:
bzr branch --stacked source-url my-dir
cd my-dir
(hack, hack, hack)
bzr commit -m "fix bug"
bzr push --stacked
スタックブランチに関して覚えておくべき大事なことは、ほとんど全てのオペレーションでスタックドオンブランチが必要になることです。 これは両方のブランチがローカルもしくは同じサーバーにあるときは問題にはなりません。
bzr reconfigure コマンドを使ってスタックドオンブランチを変更したりスタックするのをやめたりすることができます。 bzr reconfigure --unstacked を実行した場合、bzrは全ての参照されているデータをスタックドオンブランチからスタックされていたブランチにコピーしてくることに注意してください。 大きなレポジトリにおいては、これは時間がかかったりリポジトリサイズを増大させたりします。