まくまくPerforceノート
ブランチを作成する
2005-07-12

現在ディポ上に「ブランチ元」の //depot/A/... が存在しているとして、これを元に //depot/B/... というブランチを作成するには以下のようにします。

Step 1. ブランチ用クライアントビューの作成

まずは準備としてクライアント仕様に、ブランチ用のビューを追加しておきます。 これは、p4 コマンドで //depot/B/... というパスを指定したときに、ローカルディレクトリにマッピングできるようにするためです。

もし、クライアントビューとして、//depot/... のように親ディレクトリからのビューが指定されている場合は、この作業は必要ありません。

$ p4 client

View:
    //depot/A/...  //$CLIENT/A/...   ← 「本線」用のクライアント・ビュー
    //depot/B/...  //$CLIENT/B/...   ← 「ブランチ」用のクライアント・ビュー

まだこの時点では、サーバ上に //depot/B/ は存在しないし、クライアント上にも対応するファイル郡は作成されていません。

Step 2. ディポにブランチを作成する

$ p4 integrate //depot/A/... //depot/B/...

このコマンドにより、クライアントの //$CLIENT/B/... に作業コピーが作成されます。 コピーの元になっているファイルは //depot/A/... にあるファイルです。 作業コピーで作成されたファイルは //depot/B/... というブランチを作成するための作業状態として作業リストに追加されます。

この時点ではディポ上には //depot/B/... で参照できるファイルはまだ存在しないということがポイントです。 integrate コマンドは作業コピーとしてディポ上のファイルを持ってくるだけです。 integrate コマンドは sync コマンドのブランチ用と考えると分かりやすいです。 上記の例は、「本線」での作業を「ブランチ」側へ反映するためのコマンドともいえます(今回は「ブランチ」側の作業ディレクトリが空なのですべてのファイルがコピーされます)。

この作業を実際にディポ上に反映するには submit を実行します。

$ p4 submit

submit コマンドを実行する時点で //$CLIENT/B/... のファイルが新規作成の作業状態になっているので、//$CLIENT/B/... のファイルがすべて //depot/B/... へサブミットされることになります。 これで、他のユーザも //depot/B/... を参照してブランチの作業コピーを取得できるようになります。

2005-07-12