p4 depot

ディポ仕様を生成または編集します。

警告

ブランチ、ディポ、ラベル、ワークスペースを同じ名前にすることはできません。

構文規則

p4 [g-opts] depot [-t type] depotname
p4 [g-opts] depot -d [-f] depotname
p4 [g-opts] depot -o [-t type] depotname
p4 [g-opts] depot -i
注意

このコマンドは、graphタイプのディポでは異なる動作になります。 詳細については、「グラフタイプのディポを使用する」セクションを参照してください。

説明

Helixサーバでは、 ファイルがディポと呼ばれる共有リポジトリに格納されます。 デフォルトでは、 各Helixサーバインストール環境に1つずつ depotと呼ばれるlocalディポがあります。

ディポを生成または編集するには、p4 depot depotnameコマンドを使用して ディポ仕様フォーム内のフィールドを編集します。ディポのタイプは、localstreamremotearchivespecunloadtangentgraphのいずれかになります。

特定のディポタイプに対して-tオプションを指定すると、そのディポタイプ用のディポ仕様が作成されます。以下に例を示します。

$ p4 depot -t stream mystreamdepot

上記のように指定すると、以下のディポ仕様が作成されます。

Depot:        mystreamdepot
Owner:        user
Date:         2018/12/21 15:57:50
Description:  Created by user.
Type:         stream
StreamDepth:  //mystreamdepot/1
Map:          mystreamdepot/...

この仕様は編集することができます(StreamDepthを変更する方法については、「ストリームディポを使用する」を参照)。

または、以下のように指定して、出力ストリームをp4 depotコマンドに 接続することもできます。

$ p4 depot -o [-t stream] mystreamdepot | p4 depot -i
注意

p4 depotでディポを生成しても、そのディポは、p4 addでファイルが追加されるまでは ディスク上に物理的に生成されることはありません。

ユーザは、p4 depotで新たに生成されたディポがあっても、 p4 protectでディポへのアクセス機能が付与されるまでは、 そのディポにアクセスすることはできません。

フォームフィールド

フィールド名 タイプ 説明

Depot:

読み取り専用

p4 depot depotnameで指定されたディポの名前。

ファイル名とエンティティに関する文字の制限に 注意してください。

Owner:

書き込み可能

そのディポを所有するユーザの名前。デフォルトでは、そのディポを生成したユーザの名前です。

指定する所有者は、 Helixサーバユーザである必要はありません。 ユーザがまだ存在していないため任意の名前を使用する場合や、 ユーザを削除してから仕様を新しいユーザに割り当てるまでの プレースホルダーが必要となる場合があります。

Description:

書き込み可能

ディポの簡単な説明。任意入力。

Type:

書き込み可能

localremotestreamspecunloadarchivetangent、またはgraph

  • localディポは書き込み可能で、デフォルトのディポタイプです。 ファイルはサーバのルートディレクトリ内に保管され、サーバによって直接管理されます。 デフォルトでは、 各Helixサーバインストール環境に1つずつ depotlocalと呼ばれるディポがあります。
  • remoteディポは他のサーバ上のファイルを参照しているため、 書き込むことはできません。 詳しくは、「リモートディポを使用する」を参照してください。
  • streamディポも書き込み可能ですが、 階層とポリシーが組み込まれたブランチタイプであるストリームが格納されます。 詳しくは、「ストリームディポを使用する」を参照してください。
  • specディポが存在する場合、編集後のフォームがスペックディポに 自動的にアーカイブされます。 詳しくは、「スペックディポを使用する」を参照してください。
  • unloadディポが存在する場合、 それはp4 unloadコマンドによってアンロードされた、 使用頻度の低い(古いクライアントワークスペースおよび ラベルに関する)メタデータを保持します。詳細については、『Helix Coreサーバ管理者ガイド』の 「使用頻度の低いメタデータをアンロードする」を参照してください。
  • archiveディポは p4 archiveコマンドおよびp4 restoreコマンドと共に使用し、 あまり頻繁にアクセスしないリビジョン(大きいバイナリファイルなど)を オフライン(あるいはニアライン)で格納するために使用します。
  • tangentディポは、p4 fetch -tコマンドによって作成されたタンジェントを 保存するための読み取り専用の場所を定義します。 tangentという名前のタンジェントディポが存在しない場合は、p4 fetch -tコマンドによって自動的に作成されます。
  • graphタイプのディポにはGitリポジトリが含まれる場合があります。
  • extensionディポ(拡張機能ディポ)には、Helix Coreの拡張機能に関するファイルが保管されます。詳細については、「Helix Core Extensions開発者ガイド」を参照してください。

Address:

書き込み可能

Type:remoteの場合は、 リモートサーバのP4PORTアドレスを入力します。

Type:localまたはspecの場合、 このフィールドの設定は無視されます。

Suffix:

書き込み可能

Type:specの場合、このフィールドにはスペックディポ内の オブジェクトの生成パスに付加する拡張子を設定できます。 詳細については、 「スペックディポを使用する」を参照してください。

デフォルトの拡張子は.p4sです。スペックディポを使用するには、 拡張子は必須ではありませんが、 ファイル拡張子をHelixサーバサーバの バージョン化仕様に対して設定することで、 GUIクライアントソフトウェアのユーザが 仕様と任意のテキストエディタとを 関連付けることが可能になります。

Type:localまたはremoteの場合、 このフィールドの設定は無視されます。

StreamDepth:

書き込み可能

デフォルト値は、ディポ名の1レベル下のレベルです。 ストリームを作成するときに、デフォルト値以外の値を設定することができます。 詳しくは、「ストリームディポを使用する」を参照してください。

Map:

書き込み可能

Type:localspecまたはarchiveの場合は、 ディポサブディレクトリの相対位置にマッピングします。 ワイルドカード「...」を含んでいなければなりません。 例えば、localディポnewMap:は、 new/...のように記述します。

Type:remoteの場合は、リモートディポの物理的ネームスペースの位置を、 例えば//depot/new/rel2/...のようにマッピングします。 このディレクトリがローカルで見えているリモートディポの ルートとなります。

マップ情報を指定する」を参照してください。

SpecMap:

書き込み可能

スペックディポについて、どのスペックを保存すべきであるかを示す 任意指定の記述であり、ビュー形式で表現します。

オプション

-d depotname

depotnameで指定されたディポを削除します。削除するディポは、ファイルを含んでいてはなりません。 Helixサーバスーパーユーザはp4 obliterateで ファイルを削除できます。

削除するディポがremoteであっても、やはりp4 obliterateを実行する必要があります。 ファイルは削除されませんが、削除するディポに関して残っているクライアント またはラベルのレコードが除去されます。

クライアントワークスペースディポの名前は、ブランチ、クライアントのワークスペース、 またはラベルと同じ名前にすることができません。

-f

デフォルトでは、ディポを削除する場合は、Map:フィールドで指定されたディレクトリ (通常はP4ROOTの下にある)が空である必要があります。 このディレクトリが空でない場合でもすべてのファイルを削除するには、 -fオプションを使用します。

-i

標準出力からディポ仕様が読み込まれます。

p4 depot -o -t stream mystreamdepot2 > filename

上記のように指定すると、ファイルからディポ仕様が読み込まれます。filenameには、ディポ仕様を指定します。

-o depotname

ディポ仕様を標準出力へ書き出します。

-t type

ディポのタイプは、localremotespecstreamunloadarchivetangentのいずれかです。 Gitワークフローをサポートするための固有のタイプはgraphです。

g-opts

グローバルオプション」を参照してください。

使用上の注意点

ファイル引数でリビジョン指定子を使用できるか? ファイル引数でリビジョン範囲を使用できるか? 最低限必要なアクセスレベル

適用外

適用外

super

マップ情報を指定する

ローカルディポでは、ディポにあるファイルのアーカイブ内容のファイルシステムの 位置をMapフィールドで指定します。この位置は、相対位置または 絶対位置のいずれかになります。ディポのバージョン化ファイルを別のボリュームや ドライブに保存するには、Mapフィールドに絶対パスを指定してください。 指定するパスは、P4ROOTの下にある必要はありません。

  • 例えば/p4/depots/depot/...のような絶対位置の場合、それ以上の解釈は必要ありません。
  • Ace/...などの相対的な位置を表すパスの場合、 server.depot.root構成可能変数が設定されていない限り、 P4ROOTの値に対して相対的な位置として認識されます。

    既存のインストール環境で「server.depot.root」というアドレス形式を使用し、 その値を「P4ROOT」以外の値に設定する場合は、以下の点に注意する必要があります。

    1. 既存のディポMapの値を絶対値に変更する。

    2. server.depot.root変数の値を設定する。

    3. (任意) 既存のディポマップを更新する。

リモートディポを使用する

remoteディポを使用している場合、 Perforceサービスをホスティングするマシン (すなわち、P4PORTで指定されたマシン)の設定により、 Helixサーバアプリケーションが 別のPerforceサービスから ファイルを読み取る権限が 与えられています。 リモートディポの使用は読み取り専用アクセスに限られます。 つまり、Helixサーバアプリケーションは、 他のサーバ上のディポにあるファイルを addeditdelete、またはintegrateすることはできません。 リモートディポの詳細については、 「Helix Coreサーバ管理者ガイド」を参照してください。

リモートディポはremoteという仮想ユーザによって(または、 リクエストの送信元となったサービスに対してサービスユーザが 設定されていればそのユーザによって)アクセスされます。また、デフォルトでは、 どのHelixサーバインストール上のどのファイルもリモートから アクセスできるようになっています。特定のサーバへのリモートアクセスを 制限もしくは排除するには、p4 protectを用いて、 そのサーバのremoteユーザ(またはアクセス対象サイトのサービスユーザ)に 与える権限を設定します。

例えば、ある特定のサーバ上のすべてのディポに保存されたすべてのファイルに対する remoteアクセスを排除するには、そのサーバに関する権限を 次のように設定します。

read user remote * -//...

リモートディポはreadアクセス専用であるため、 writeまたはsuperのアクセス権限を 解除する必要はありません。

サービスユーザも仮想ユーザremoteHelixサーバのライセンスを必要としません。

お使いのサーバでサービスユーザによってリモートディポにアクセスする場合は、 サービスユーザにリモートディポ提供元のサーバに対する有効な チケットが与えられている必要があります。

詳しくは、『Helix Coreサーバ管理者ガイド』の「リモートディポとマルチサーバ開発」を参照してください。

スペックディポを使用する

specディポが存在する場合、ユーザが編集したフォーム(クライアントワークスペースの仕様、 ジョブ、ブランチマッピングなど)に対する変更が追跡されます。specディポは1つのサーバに対して1つしか作成できません。 スペックディポにあるファイルは自動的に Helixサーバによって生成され、 Helixサーバシンタックスは 次のように表記されます。

//specdepotname/formtype/objectname[suffix]

例えば以下のように指定すると、job000123に対する変更履歴を取得することができます。 「spec」はスペックディポの名前、「.p4s」はデフォルトの拡張子です。

p4 filelog //spec/job/job000123.p4s

スペックディポを作成したら、「p4 admin updatespecdepot」コマンドを使用して、現在のクライアントフォーム、ディポフォーム、ブランチフォーム、ラベルフォーム、 タイプマップフォーム、グループフォーム、ユーザフォーム、ジョブフォームのデータをまとめてスペックディポに読み込みます。

スペックディポの場合、SpecMap:フィールドを使用して、どのスペックを バージョン化するかを制御できます。デフォルトでは、 すべてのスペック(//spec/...)がバージョン化されます。 プロテクションテーブルをバージョン化の対象から外すには、 スペックディポのSpecMap:を次のように設定します。

SpecMap:
    //spec/...
    -//spec/protect/...

スペックマッピングの追加または変更は、スペックディポの今後の更新に対してのみ影響します。 スペックディポに既に格納済みのファイルには影響しません。

詳細については、『Helix Coreサーバ管理者ガイド』の 「スペックディポ」を参照してください。

ストリームディポを使用する

ストリームとは、階層とポリシーが含まれている特殊なブランチのことです。streamディポは、一連のストリームを保管するためのコンテナです。 ストリームディポを作成するには、ディポ仕様で以下の情報を指定します。

  • Depot: ストリームディポの名前
  • Owner
  • Date: ストリームディポの作成日
  • Type: ストリームディポのタイプ (「stream」を指定する必要があります)
  • StreamDepth

StreamDepthについて

デフォルトの場合、ストリーム内のファイルはディポ名の1レベル下の 階層に保管されます。以下に例を示します。

//myStreamDepot/myStream1
//myStreamDepot/myStream2
//myStreamDepot/myStream3

デフォルト値以外の値を「StreamDepth:」フィールドで指定する場合は、整数またはスラッシュを指定します。

整数を指定する場合:

Depot:	myStreamDepot
Owner:	bruno
Date:	2018/11/21 11:10:32
Description:
Created by bruno.
Type:	stream
Address: local
Suffix:  .p4s
StreamDepth: 2

スラッシュを指定する場合(この例では、整数の「2」を指定した場合と同じになります):

Depot:	myStreamDepot
Owner:	bruno
Date:	2018/11/21 11:10:32
Description:
Created by bruno.
Type:	stream
Address: local
Suffix:  .p4s
StreamDepth: //myStreamDepot/foo/bar
ヒント

特定のプロジェクト、グループ、または場所に対応するストリームを作成することをお勧めします。例えば、以下のように指定します。
StreamDepth: //deepStream/1/2/3/4

または
StreamDepth: 4

ただし、階層があまり深くならないようにするため、StreamDepthには「3」以下の値を指定することをお勧めします。例えば、以下のような3つの階層になっているとします。

//myStream/organization/project/mainline
//myStream/organization/project/dev
//myStream/organization/project/release1
//myStream/organization/project/release2

この場合、「StreamDepth:」フィールドの値を「3」に設定するには、以下に示すいずれかの方法で値を指定します。

StreamDepth: 3

または

StreamDepth: //myStream/1/2/3

重要

ストリームのnameStreamDepthは、1回のみ指定することができます。一度指定したストリームの名前と階層を変更することはできません。

ヒント

ストリームの種類に関する詳しい説明とストリームの使用方法については、『Helix Coreコマンドライン(P4)ガイド』の「ストリームを参照してください(『Helix Coreサーバ管理者ガイド』の「ストリームディポ」にも関連情報が記載されていますが、概要的な情報しか記載されていません)。

グラフタイプのディポを使用する

GitリポジトリをHelixサーバに保存するには、graphタイプのディポを使用します。

例えば、graphタイプのディポを作成してgraphDepot1という名前を付け、 次のコマンドを発行します。

p4 depot -t graph graphDepot1

graphタイプのディポのリストを表示するには、次のコマンドを発行します。

p4 depots -t graph

repoという名前のグラフタイプのデフォルトのディポが、 Helixサーバサーバが作成されたとき、または2017.1以降に更新されたときに、 自動的に作成されます。

Gitリポジトリまたはグラフディポを作成後、p4 depotsは、graphタイプであるかどうかに関わらず、 すべてのディポをリストします。

注意

graphタイプのディポはp4 protect機能をファイルレベルで使用しません。 その代わり、グラフディポがファイルのリポジトリ(repo)全体の権限のセットで Gitモデルをサポートします。詳しくは、p4 grant-permissionを参照してください。

graphタイプのディポでの作業についての詳細は、 『Helix4Git管理者ガイド』を参照してください。

関連コマンド

Helixサーバサーバが認識しているすべてのディポを一覧表示する

p4 depots

新しいディポにファイルを入れる

p4 add

既存のクライアントワークスペースから新しいディポへのマッピングをディポに追加する

p4 client

ディポから1つのファイルのあらゆる痕跡を除去する

p4 obliterate

ディポへのリモートアクセスを制限する

p4 protect

ファイルをアーカイブディポにアーカイブする

p4 archive

ファイルをアーカイブディポから復元する

p4 restore