Helix Core P4コマンドリファレンス (2019.1)

ビュー

ビューにはクライアントビューブランチビュー、およびラベルビューの3種類があります。

  • クライアントビューは、ディポ内のファイルをクライアントワークスペース内のファイルにマッピングします。
  • ブランチビューは、ディポ内のファイルをディポの他の部分にマッピングします。
  • ラベルビューは、ディポにあるファイルのグループを単一のラベルに関連付けます。

各タイプのビューを構成する行は、ディポからのファイルを適切なネームスペースにマッピングします。 クライアントビューおよびブランチビューのマッピングは、2つのファイル仕様が含まれます。 マッピングの左側はディポのネームスペースを参照し、マッピングの右側はクライアントワークスペースまたはディポのネームスペースを参照します。 ラベルビューでは、マッピングの左側(ディポのネームスペース)にのみ入力する必要があります。ファイルは自動的に特定のラベルに関連付けられます。

  • すべてのビューは、ディポ内のファイルと、クライアントワークスペース、ブランチ、またはラベル内のファイルとの間で一対一のマッピングを作成しています。
  • マッピングの1つ以上の行が同じファイルを参照している場合、前のマッピングがオーバーライドされます。
  • ハイフン(-)で始まるマッピングは、そのマッピングに適合するファイルをすべて除外します。
  • クライアントビューでは、プラス記号(+)で始まるマッピングが以前のマッピングをオーバーレイします。 (オーバーレイマッピングはブランチビューやラベルビューでは適用されません。)

ファイル指定マッピング内のファイル指定は通常のHelixサーバシンタックスで入力できます。//で始まりディポ名またはワークスペース名が続き、さらにディポまたはワークスペース内での実際のファイル名が続きます。 (ビューでリビジョン指定子を使用することはできません)。

使用上の留意点

ビューは、p4 clientp4 branch、またはp4 labelコマンドで、それぞれクライアントワークスペース、ブランチビュー、またはラベルビューを作成するプロセスの一部として設定します。

クライアントビューまたはブランチビュー内でのマッピングの順序は重要です。ビューで後にあるマッピングによって、必ず前のマッピングがオーバーライドされるためです。

次の2つのマッピングで定義されているビューがあるとします。

//depot/...     //ws/...
//depot/dir/... //ws/dir2/...

ディポ全体はクライアントワークスペースにマッピングされますが、ファイル//depot/dir/file.c//ws/dir2/file.cにマッピングされ、前のマッピングをオーバーライドします。

ビュー内の行の順序が逆になったとします。

//depot/dir/... //ws/dir2/...
//depot/...     //ws/...

ファイル//depot/dir/file.c//ws/dir/file.cにマップされます。2番目のマッピングが最初のマッピングをオーバーライドするためです。

パスおよびファイルの名前に含まれる空白

ワークスペースビュー、ブランチビューまたはラベルビューにあるパスやファイルの名前に空白が含まれる場合は、パスを引用符(")で囲んでください。

//depot/v1/... "//ws/version one/..."

パスおよびファイルの名前に含まれる特殊文字

@#*、または%の文字が含まれたファイル名やディレクトリ名をマッピングする(つまり、それらの文字をHelixサーバワイルドカードとしてではなくパスやファイル名の構成要素として解釈する)には、それらの文字を等価のASCII表現に拡張します。

文字 ASCII拡張

@

%40

#

%23

*

%2A

%

%25

クライアントビュー

クライアントビューは、ディポ内のファイルをクライアントワークスペース内のファイルにマッピングします。 クライアントワークスペースとは、ユーザが作業を行う領域です。 ファイルはディポからクライアントワークスペースに同期され、編集のための作業状態にされ、編集が行われた後、ディポにチェックインされます。

ファイルが同期されるとき、ファイルはディポからクライアントワークスペース内のファイルがマッピングされている場所にコピーされます。 同様に、ファイルがディポにサブミットされるとき、ファイルはクライアントワークスペースからディポ内の適切な場所にコピーされます。

次の表は、クライアントビューのいくつかの例をリストにしています。

クライアントビュー マッピングの例

ディポ全体にクライアントワークスペース全体がマッピングされています。

//depot/... //ws/...

ディポの一部にクライアントワークスペース全体がマッピングされています。

//depot/dir/... //ws/...

ハイフン(-)を指定しているため、ディポ内の一部のファイルがクライアントワークスペースから除外されています。

//depot/dir/... //ws/...
-//depot/dir/exclude/... //ws/dir/exclude/...

ディポ内のいくつかのファイルが、クライアントワークスペースの別の部分にマッピングされています。

//depot/... //ws/...
//depot/rel1/... //ws/release1/...

クライアントワークスペース内のファイルが、自身のディポ名とは異なる名前にマッピングされます。

//depot/dir/old.* //ws/renamed/new.*

ディポ内でのファイル名の一部が、クライアントワークスペース内で並べ替えられます。

//depot/dir/%%1.%%2 //ws/dir/%%2.%%1

デフォルトでは、2つの行がワークスペース内の同じ場所にマップされた場合、最初の行は無視されます。

//depot/dir1/... //ws/build/... 
//depot/dir2/... //ws/build/...

オーバーレイマッピングでプラス記号(+)を指定すると、「多対一」のマッピングを実行することができます。 複数のディポディレクトリ内のファイルが、ワークスペース内の同じ場所にマップされます。

//depot/dir1/... //ws/build/... 
+//depot/dir2/... //ws/build/...
アンパサンド(&)を指定すると、「一対多」のマッピングを実行することができます。 ディポ内のファイルが、ワークスペース内の複数の場所にマップされます。 行の先頭に「&」が指定されているワークスペースファイルは、読み取り専用ファイルであることに注意してください。
//depot/shared/include/... //ws/dir1/include/... 
&//depot/shared/include/... //ws/dir2/include/...

クライアントビューを作成するには、p4 clientを使用して、ディポ内のファイルをクライアントワークスペース内のファイルにどのようにマッピングするかを指定できる画面を表示します。

注意

ビュー仕様でgraphタイプのディポのファイルをマップすることができます。 詳細については、トピックグラフディポリポジトリをクライアントに含めるp4 clientセクションを参照してください。

ブランチビュー

ソースツリーのブランチを作成することにより、複数のファイルセットを別のパス上で変更することができます。 ブランチビューを作成することによって、Helixサーバはブランチ作成に関連するファイルのコピーや編集の伝達作業を自動管理できます。

ブランチビューは、ディポの既存の領域(反映元ファイル)をディポの新しい領域(反映先ファイル)にマッピングします。 ブランチビューはクライアントビューの定義に使用される方法とほぼ同じ方法で定義されますが、ファイルを直接クライアントワークスペースにマッピングするというよりは、ディポ内のマッピングをセットアップするのみです。 反映はどちらの方向にも実行される可能性があるため、ブランチビュー内の各行ではどちらかの方向を明確に示さなければなりません。したがって、ブランチビューではオーバーレイマッピングは使用できません。

ブランチビュー マッピングの例

メインのコードラインから新しいコードのブランチを作成します。

//depot/main/... //depot/1.1dev/...

新しいリリースでディレクトリを並べ替えます。

//depot/main/... //depot/1.1dev/... 
//depot/main/*.c //depot/1.1dev/src/*.c
//depot/main/*.txt //depot/1.1dev/doc/*.txt

ブランチビューを作成するには、次の構文を使用します。

p4 branch newbranch

このコマンドにより画面(p4 clientで表示する画面と同様)が表示され、メインのソースツリーからの反映元ファイルを新しいブランチの反映先ファイルにマッピングできます。

ブランチビューが最初に作成されたときは、ファイルは1つもコピーされません。 ファイルをコピーするには、それらのファイルを使用する目的で、新しく作成したファイルがクライアントビューの中に確実に記述されていなければなりません。 新しくマッピングされたディポのブランチを現クライアントビューに追加し、p4 syncコマンドを実行すれば、コピーは完了します。

ラベルビュー

ラベルビューは、ディポ内のファイルのセットにラベルを割り当てます。 クライアントビューやブランチビューとは異なり、ラベルビューはファイルをコピーしません。ラベルビューは、ラベルでタグ付けできるファイルのセットを限定する目的で使用します。

ラベルビュー マッピングの例

新しいリリース

//depot/1.1final/...

新しいリリースのためのソースコード

//depot/1.1final/src/...

クライアントに適した配置

//depot/1.1final/bin/... 
//depot/1.1final/doc/...
//depot/1.1final/readme.txt

ラベルを作成するにはp4 labellabelnameを使用し、ビューのディポ側を入力します。 ラベルはファイルとリビジョンレベルの単なるリストであるため、指定する必要があるのはビューのディポ側(左側)のみであり、オーバーレイマッピングは使用できません。