プロジェクトをブランチする
===========================

ブランチのURL
--------------

誰かがあなたの作品のコピーを手に入れる前に、転送プロトコルを理解する必要があります。
ブランチのトップレベルのディレクトリを、Windowsユーザーが慣れ親しんだ方法で、\
ネットワーク上で共有することを決定するとします。
LinuxとOS Xのユーザーは、大抵のSSHサーバーに組み込まれているセキュアなプロトコルである、\
SFTPを通してアクセスする方が望ましいです。
Bazaarは下記で一部が示されるたくさんのプロトコルのサポートに関して *とても* 柔軟です。

  ===========   ==========================================================================
  スキーム      説明
  ===========   ==========================================================================
  \file://      標準ファイルシステムを利用してアクセスする (デフォルト)
  \bzr+ssh://   SSH ごしのアクセス   (リモートで最良の選択肢).
  \sftp://      SFTPを利用してアクセスする (大抵のSSHサーバーはSFTPを提供する)
  \bzr://       Bazaarのスマートサーバーを利用した高速のアクセス
  \ftp://       パッシブFTPを利用してアクセスする
  \http://      Webサーバーによって公開されたブランチへのアクセス
  \https://     Webサーバーによって公開されたブランチへの、暗号化されたアクセス
  ===========   ==========================================================================

上記で示されるように、ブランチは転送プロトコルを示すスキームを伴うURLを使用して識別されます。
スキームが無ければ、通常のファイルの名前が想定されます。
サポートされるプロトコルの完全なリストに関しては、
``urlspec`` のオンライントピックもしくはBazaarのユーザーリファレンスの
`URLの識別子 <../user-reference/index.html#url-identifiers>`_
のセクションを参照してください。

URL は通常サーバーのルートディレクトリから解決されます。
なので、 ``ftp://example.com/repo/foo`` はそのホストの ``/repo/foo``
ディレクトリを意味しています。(「通常」といっているのは、Apacheの
ようないくつかのサーバーソフトウェアはURLを任意の場所にリマップ
できるからです。この場合はサーバーの設定ファイルを確認して、
どのURLがどのディレクトリを参照しているかを探さないといけないでしょう)

サーバー上の自分のホームディレクトリからの相対パスを使うには、チルダを
使います。たとえば ``bzr+ssh://example.com/~/public_html`` と書くと、
ホームディレクトリの中の ``public_html`` ディレクトリにマップされます。

.. note:: HTTP や HTTPS ごしのアクセスはデフォルトでは読み込み専用です。
   読み書き両方に対応するための設定については、
   `HTTP スマートサーバーごしの push <http_smart_server.html#pushing-over-the-http-smart-server>`_
   を参照してください。

.. _a-reminder-about-shared-repositories:

共用レポジトリに関するリマインダ
---------------------------------

ブランチのコピーを手に入れる前に、ファイルシステム上に設置する場所を少し考えて\
みましょう。
最大限のストレージの効率性のために、共用リポジトリとしてセットアップされた\
ディレクトリの元でブランチを作ることを推奨します。
(よく使われるレイアウトについては、 `作業スペースを構成する
<organizing_your_workspace.html>`_ の中の `ブランチの機能
<organizing_your_workspace.html#feature-branches>`_
を参照してください)
たとえば::

  bzr init-repo my-repo
  cd my-repo

誰からでもブランチを入手して好きなようにする準備ができました。

ブランチのコマンド
-------------------

既存のブランチに基づいたブランチを手に入れるためには、 ``branch``
コマンドを使用してください。構文は次のとおりです::

  bzr branch URL [directory]

ディレクトリの名前が渡されない場合、URLの最後の部分に基づいてディレクトリが作成されます。
ドライブ名 (M:/) とSFTPのURLを示すそれぞれの例は次のとおりです::

  bzr branch M:/cool-trunk
  bzr branch sftp://bill@mary-laptop/cool-repo/cool-trunk

新しいブランチを使うために明示的にディレクトリの名前を渡す例は次のとおりです::

  bzr branch /home/mary/cool-repo/cool-trunk cool

時間とスペースへの考慮
-----------------------

転送されるブランチのサイズと コンピュータとソースのブランチの間のネットワーク帯域と
レイテンシによっては、この初期の転送は少し時間がかかります。
その後の更新は変更のみが転送されるので遙かに速くなります。

Bazaarは最新のスナップショットではなくブランチの完全な履歴を転送することを覚えておいてください。
結果として、 ``branch`` を完了させた後でネットワークから離脱しても、
ブランチの履歴に対して ``log`` と ``diff`` を好きなだけ行うことができます。
さらに、履歴がローカルで保存されているのでこれらのオペレーションは速いです。

Bazaarはバージョンの履歴を保存するために求められるディスクスペースの総量を\
最小限にするスマートな圧縮技術を使うことに注意してください。
多くの場合、プロジェクトの完全な履歴は最新バージョンの作業コピーよりも少ない\
ディスクスペースを占めます。

後の章で説明するように、Bazaarはブランチの軽量チェックアウト、
すなわち履歴のローカルなストレージなしの作業ツリーもサポートします。
もちろん、接続しない使い方は利用できませんが、ローカルディスクスペースが\
本当に厳しいのであればそれはあなたが決めることができるトレードオフです。
現在、制限された履歴の振り返りのためのサポート - *履歴の水平線(history horizon)* -
は開発段階にあります。

ブランチの情報を閲覧する
-------------------------

配布元も含むブランチの情報を見たいのであれば、 ``info`` コマンドを使います::

  bzr info cool

ブランチが引数として渡されなければ、現在のブランチの情報が表示されます。
