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 -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」以下の値を指定することをお勧めします。例えば、以下のような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コマンドライン(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サーバサーバが認識しているすべてのディポを一覧表示する |
|
新しいディポにファイルを入れる |
|
既存のクライアントワークスペースから新しいディポへのマッピングをディポに追加する |
|
ディポから1つのファイルのあらゆる痕跡を除去する |
|
ディポへのリモートアクセスを制限する |
|
ファイルをアーカイブディポにアーカイブする |
|
ファイルをアーカイブディポから復元する |