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
コマンドを使用してディポ仕様フォーム内のフィールドを編集します。 ディポのタイプは、local
、stream
、remote
、archive
、spec
、unload
、tangent
、graph
のいずれかになります。
特定のディポタイプに対して-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
でディポへのアクセス機能が付与されるまでは、そのディポにアクセスすることはできません。
フォームフィールド
フィールド名 | タイプ | 説明 |
---|---|---|
|
読み取り専用 |
ファイル名およびエンティティに関する文字の制限に注意してください。 |
|
書き込み可能 |
そのディポを所有するユーザの名前。 デフォルトでは、そのディポを生成したユーザの名前です。 指定する所有者は、Helixサーバユーザである必要はありません。 ユーザがまだ存在していないため任意の名前を使用する場合や、ユーザを削除してから仕様を新しいユーザに割り当てるまでのプレースホルダーが必要となる場合があります。 |
|
書き込み可能 |
ディポの簡単な説明。 任意入力。 |
|
書き込み可能 |
local、
|
|
書き込み可能 |
|
|
書き込み可能 |
デフォルトの拡張子は
|
|
書き込み可能 |
デフォルト値は、ディポ名の1レベル下のレベルです。 ストリームを作成するときに、デフォルト値以外の値を設定することができます。 詳細については、「ストリームディポを使用する」を参照してください。 |
|
書き込み可能 |
詳細情報については、「マップ情報を提供する」を参照してください。 |
|
書き込み可能 |
スペックディポについて、どのスペックを保存すべきであるかを示す任意指定の記述であり、ビュー形式で表現します。 |
オプション
|
depotnameで指定されたディポを削除します。 削除するディポは、ファイルを含んでいてはなりません。Helixサーバスーパーユーザは 削除するディポが ディポの名前は、ブランチ、クライアントのワークスペース、またはラベルと同じ名前にすることができません。 |
|
デフォルトでは、ディポを削除する場合は、 |
|
標準出力からディポ仕様が読み込まれます。 p4 depot -o -t stream mystreamdepot2 > filename 上記のように指定すると、ファイルからディポ仕様が読み込まれます。filenameには、ディポ仕様を指定します。 |
|
ディポ仕様を標準出力へ書き出します。 |
|
ディポのタイプは、 |
|
詳細については、「グローバルオプション」を参照してください。 |
使用上の留意点
ファイル引数にリビジョン指定子を使えるか? | ファイル引数にリビジョン範囲を使えるか? | 最低限必要なアクセスレベル |
---|---|---|
適用外 |
適用外 |
|
マップ情報を提供する
ローカルディポでは、ディポにあるファイルのアーカイブ内容のファイルシステムの位置を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サーバアプリケーションは、他のサーバ上のディポにあるファイルをadd
、edit
、delete
、またはintegrate
することはできません。 リモートディポの詳細については、「Helix Coreサーバ管理者ガイド」を参照してください。
リモートディポはremote
という仮想ユーザによって(または、リクエストの送信元となったサービスに対してサービスユーザが設定されていればそのユーザによって)アクセスされます。また、デフォルトでは、どのHelixサーバインストール上のどのファイルもリモートからアクセスできるようになっています。 特定のサーバへのリモートアクセスを制限もしくは排除するには、p4
protect
を用いて、そのサーバのユーザremote
(またはアクセス対象サイトのサービスユーザ)に与える権限を設定します。
例えば、ある特定のサーバ上のすべてのディポに保存されたすべてのファイルに対するremote
アクセスを排除するには、そのサーバに関する権限を次のように設定します。
read user remote * -//...
リモートディポはread
アクセス専用であるため、write
またはsuper
のアクセス権限を解除する必要はありません。
サービスユーザも仮想ユーザremote
もHelixサーバのライセンスを必要としません。
お使いのサーバでサービスユーザによってリモートディポにアクセスする場合は、サービスユーザにリモートディポ提供元のサーバに対する有効なチケットが与えられている必要があります。
詳しくは、『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
ストリームのnameとStreamDepthは、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サーバサーバが認識しているすべてのディポを一覧表示する |
|
新しいディポにファイルを入れる |
|
既存のクライアントワークスペースから新しいディポへのマッピングをディポに追加する |
|
ディポから1つのファイルのあらゆる痕跡を除去する |
|
ディポへのリモートアクセスを制限する |
|
ファイルをアーカイブディポにアーカイブする |
|
ファイルをアーカイブディポから復元する |