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

p4 push

ローカルサーバのサブミット済みファイルをリモートサーバにコピーします。

注意

分散バージョン管理で使用。 詳細については、「分散バージョニング環境におけるHelix Coreサーバの利用」を参照してください。

構文

p4 [g-opts] push [-n -v] [-r remotespec] [-Ox] [-S stream | filespec]
p4 [g-opts] push [-n -v] [-r remotespec] [-Ox] -s shelf

説明

p4 pushを実行すると、指定したローカルサーバからリモートサーバに次の項目がコピーされます。

  • 指定したファイルのセット
  • 指定したファイルをサブミットしたチェンジリスト
  • ファイルの属性
  • チェンジリストに関連付けられているすべての修正(ただし、修正によって関連付けられたジョブが、リモートサーバ内に既に存在している場合のみ。 存在しない場合、修正はコピーされません)
  • プッシュ対象のファイルに対する反映を記述するすべての反映記録

プッシュが可能なのは、プッシュされるファイルがリモートサーバに完全に適合していて、共有されている共通の履歴に基づいて厳密に構築されている場合のみです。 衝突やずれが多数ある場合、プッシュは拒否されます。 それ以外の場合、チェンジリストはリモートサーバの新しいサブミット済みチェンジリストになります。

このコマンドの2番目のフォームにより、1つ以上のサブミット済みチェンジリストではなく、保留状態のチェンジリストがプッシュされます。その際に衝突は回避され、リモートサーバ上で新しい変更が保留されます。

チェンジリストがリモートサーバに追加されると、新しいチェンジ番号が付与されますが、ファイルが保持する記述、ユーザ、タイプ、ワークスペースおよびファイルのセットは同じです。

ファイルがリモートサーバに追加されると、同じチェンジリストに保持され、現在の最新リビジョンの後に開始される新規のリビジョンになります。 この新しいリビジョンでは、元のファイルと同じリビジョン番号、ファイルタイプ、操作、日付、タイムスタンプ、ダイジェスト、ファイルサイズが保持されます。

そのチェンジリストがリモートサーバに新規でサブミットされたチェンジリストだとしても、リモートサーバではサブミットトリガは実行されません。

特定のファイルのリビジョンを別のサーバにコピーし、p4 attribute -fコマンドを使用してそのリビジョンの属性を変更した場合は、そのサーバ上のリビジョンのみに影響し、他のサーバにコピーされたリビジョンには影響しません。

通常、p4 pushコマンドはリモートの仕様を設定し、リモート仕様のDepotMapフィールドはプッシュするファイルを指定します。 p4 pushコマンドは、プッシュされるファイルをさらに制限するfilespec引数も指定する場合があります。 リモート仕様がDepotMapのローカルおよびリモート側で異なるパターンを使用する場合、filespec引数(該当の場合)はローカルのfilenameシンタックスでファイルを指定する必要があります。

あるチェンジリストに、filespecが一致するファイルと一致しないファイルが含まれている場合、一致するファイルのみがプッシュに含まれます。 チェンジリストの一部をプッシュしないようにするには、適切なfilespecを指定する必要があります(例えば//...@change,#headなど)。

プッシュ対象のファイルへの反映が記載されているこの反映レコードはリモートサーバで調整され、その結果リモートサーバのチェンジリスト番号とリビジョン番号が反映されます。

一連のファイルをプッシュするには、ローカルサーバ上でそれらのファイルに対する読み取りアクセス権が設定されていて、リモートサーバのプロテクションテーブルに従い、リモートサーバ上でそれらのファイルに対する書き込みアクセス権が設定されている必要があります。 また、リモートサーバではローカルサーバのユーザIDが使用されるため、p4 pushコマンドを実行する前に、リモートサーバとローカルサーバの両方にログインする必要があります。

p4 pushコマンドを使用して、個別のファイルをフェッチすることはできません。指定した条件に該当するファイルがすべてフェッチされるか、ファイルが1件もフェッチされないかのいずれかの動作になります。

rpl.checksum.change構成可能変数の値により、p4 pushコマンド用に実行される認証のレベルが決まります。 詳細については、「構成可能変数」を参照してください。

プッシュに対してトリガを起動させる

次のプッシュトリガタイプは、p4 pushコマンドの実行中に起動することができます。

  • push-submitトリガを使用すると、メタデータが転送済みでファイルがまだ転送されていない場合に、p4 pushコマンドのフェーズにおけるプロセスをカスタマイズすることができます。
  • push-contentトリガを使用すると、ファイルが転送済みでその内容がまだ転送されていない場合に、p4 pushコマンドのフェーズにおけるプロセスをカスタマイズすることができます。
  • push-commitトリガを使用すると、p4 pushコマンドによって変更をコミットした後で、クリーンアップ操作やポストプロセスを実行することができます。

詳細については、『Helix Coreサーバ管理者ガイド: 基本』の「プッシュまたはフェッチのトリガ」セクションを参照してください。

オプション

-rオプションが指定されていない場合、p4 pushは、オリジンに指定されたリモートサーバにファイルをプッシュします。

デフォルトでは、変更をサーバからサーバへプッシュすることはできません。サーバ間で変更をプッシュするには、各サーバの管理者はプッシュを有効にする必要があります。 プッシュを開始するサーバではserver.allowpush1に設定し、目的のサーバではserver.allowpush2に設定します。 ファイルタイプ修飾子+k+l+Sには、特別な考慮事項があります。 +kタイプのファイルは、プッシュされたときにダイジェストをクリアします。 これは、特定のサーバ間マージの衝突が検出されないことを意味します。 プッシュ後にリモートサーバでダイジェストを再生成するには、p4 verifyを使用します。

+lタイプのファイルをプッシュする時、リモートサーバで作業中チェンジリストによりファイルが作業中であっても、新しいファイルがサーバに追加されます。 +Sタイプのファイルをプッシュする時、指定の制限を超える古いアーカイブはp4 pushコマンドで消去されません。

-n

すべての正確性チェックを実行します。ただし、ファイルまたはチェンジリストはリモートサーバにプッシュしません。

-Oc

このオプションを指定してp4 pushコマンドを実行すると、すべてのチェンジリストに関する情報が表示されます。

このオプションを機能させるには、-vオプションも指定する必要があります。

-Of

このオプションを指定してp4 pushコマンドを実行すると、すべてのチェンジリスト内のすべてのファイルに関する情報が表示されます。

このオプションを機能させるには、-vオプションも指定する必要があります。

-Oi

このオプションを指定してp4 pushコマンドを実行すると、すべてのチェンジリスト内のすべてのファイル内のすべての反映に関する情報が表示されます。

このオプションを機能させるには、-vオプションも指定する必要があります。

-r remotespec

リモートサーバのアドレスを含むリモート仕様、およびリモートサーバからプッシュされたファイルの再マッピングに使用されるファイルマッピングを指定します。

-s

サブミット済みの1つ以上のチェンジリストではなく、プッシュ対象の保留状態のチェンジリストを指定します。 詳細については、分散バージョニング環境におけるHelix Coreサーバの利用の「フェッチとプッシュ」の章中の「保留状態のチェンジリストのフェッチとプッシュ」セクションを参照してください。

-S stream

プッシュする特定のストリームを指定します。 ストリームを指定した場合、ファイルを指定することはできません。

-v

デバッグの診断を行える冗長モードを指定します。 冗長モードを選択する必要があります。

冗長モードをオンにすると、冗長レベルを正確に制御することができます。 具体的には、以下の情報を表示するかどうかを制御することができます。

  • プッシュされたすべてのチェンジリストに関する情報(-Ocオプションを使用)
  • プッシュされたすべてのチェンジリスト内のすべてのファイルに関する情報(-Ofオプションを使用)
  • プッシュされたすべてのチェンジリスト内のすべてのファイルのすべての反映に関する情報(-Oiオプションを使用)

上記のオプションは、自由に組み合わせることができます。

デフォルトでは、すべてのチェンジリストに関する情報が表示されます。

filespec

プッシュするファイルを1つまたは複数指定します。 1つまたは複数のファイルを指定した場合、-Sオプションでストリームを指定することはできません。

使用上の留意点

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

適用外

適用外

ローカルサーバの場合read
write。 リモートサーバ上で使用できます。

p4 push -r bruno-remote

リモート仕様で指定された1つまたは複数のファイルをプッシュします。

関連コマンド

リモートサーバからローカルサーバへファイルをコピーする

p4 fetch