p4 depot

概要

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

構文


p4 [g-opts] depot depotname
p4 [g-opts] depot -d [-f] depotname
p4 [g-opts] depot -o depotname
p4 [g-opts] depot -i

解説

Perforceバージョン化サービスでは、ファイルをディポと呼ばれる共有レポジトリに格納します。デフォルトでは、各Perforceインストールに1つずつディポがあり、その名前はdepotです。

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

p4 depotでディポを生成しても、そのディポは、p4 addでファイルが追加されるまではディスク上に物理的に生成されることはありません。ユーザは、p4 depotで新たに生成されたディポがあっても、p4 protectでディポへのアクセス権限が付与されるまでは、そのディポにアクセスすることはできません。

フォームフィールド

フィールド名

タイプ

解説

Depot:

読み取り専用

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

Owner:

書き込み可能

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

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

Description:

書き込み可能

ディポの目的に関する短いコメント。書き込み必須ではありません。

Type:

書き込み可能

localremotespecstreamunloadまたはarchiveです。

ローカルディポは書き込み可能であり、デフォルトのディポタイプです。ファイルはサーバーのルートディレクトリに格納されています。

ストリームディポも書き込み可能ですが、階層と方策が組み込まれたブランチタイプであるストリームが格納されます。

リモートディポは他のサーバ上にあるので、書き込みはできません。詳細については、リモートディポを使用するを参照してください。

スペックディポが存在する場合、それは編集されたフォームをアーカイブします。詳細については、スペックディポを使用するを参照してください。

アンロードディポが存在する場合、それはp4 unloadコマンドによってアンロードされた、使用頻度の低い(古いクライアントワークスペースおよびラベルに関する)メタデータを保持します。詳細については、『Perforceサーバ管理者ガイド: 基本』を参照してください。

アーカイブディポはp4 archiveコマンドおよびp4 restoreコマンドと共に使用し、あまり頻繁にアクセスしないリビジョン(大きいバイナリファイルなど)をオフライン(あるいはニアライン)で格納するために使用します。

Address:

書き込み可能

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

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

Suffix:

書き込み可能

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

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

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

Map:

書き込み可能

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

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

詳細については、マップ情報を指定するを参照してください。

SpecMap:

書き込み可能

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

オプション

-d depotname

ディポdepotnameを削除します。削除するディポは、ファイルを含んでいてはなりません。Perforceスーパーユーザはp4 obliterateでファイルを削除できます。

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

-f

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

-i

ディポ仕様を標準入力から読み込みます。

-o depotname

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

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で指定されたマシン)の設定により、Perforceアプリケーションが別のPerforceサービスからファイルを読み取る権限が与えられています。リモートディポの使用は読み取り専用アクセスに限られます。つまり、Perforceアプリケーションは、他のサーバ上のディポにあるファイルをaddeditdelete、またはintegrateすることはできません。詳細については、『Perforceサーバ管理者ガイド: 基本』を参照してください。

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

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

read user remote * -//...

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

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

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

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

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

//specdepotname/formtype/objectname[suffix]

例えば、名前がspecであり、拡張子が.p4sであるスペックディポが存在する場合、以下のようにしてjob000123に対する変更履歴を取得することができます。

p4 filelog //spec/job/job000123.p4s

スペックディポを作成したら、p4 admin updatespecdepotを使用して、現在のクライアント、ディポ、ブランチ、ラベル、タイプマップ、グループ、ユーザ、ジョブの各フォーム集合からデータを読み込みます。スペックディポの設定について詳しくは、『Perforceサーバ管理者ガイド: 基本』を参照してください。

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

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

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

関連コマンド

Perforceサーバが認識しているすべてのディポのリストを参照する。

p4 depots

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

p4 add

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

p4 client

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

p4 obliterate

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

p4 protect

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

p4 archive

ファイルをアーカイブディポからリストアする。

p4 restore