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

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 -o -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つずつdepotと呼ばれるlocalディポがあります。
  • 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以外の値に設定する場合、まず既存のディポのMapの値を更新して、それらが絶対値であることを確認してください。 server.depot.root変数を設定しても、何かの妨げになることはありません。 その後戻ってから、要望に応じて既存のディポマップを更新します。

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

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」以下の値を指定することをお勧めします。 例えば、以下のような階層になっているとします

//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サーバユーザガイド』の「ストリームを参照してください(『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