p4 push

概要

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

構文

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

解説

p4 pushコマンドは、指定したファイルのセットと、これらのファイルをサブミットしたチェンジリストを、指定したリモートサーバにコピーします。

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

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

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

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

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

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

ファイルのリビジョンとチェンジリストに加えて、p4 pushコマンドはアーカイブの内容もリモートサーバにコピーします。遅延コピーの場合、リモートサーバはすでに対応するアーカイブを保有している場合があり、この場合遅延コピーはリモートサーバの既存のアーカイブを参照するように調整されます。

p4 pushコマンドは、反映を記述したすべての反映記録をプッシュされるファイルにコピーします。これらの反映レコードはリモートサーバで調整され、その結果リモートサーバのチェンジリスト番号とリビジョン番号が反映されます。

ファイルのセットをプッシュするには、現在のサーバのこれらのファイルに対する読み取りアクセス権と、リモートサーバにある同じファイルに対する書き込みアクセス権を持っている必要があります(リモートサーバのプロテクションテーブルによる)。ローカルのuseridはリモートサーバのuseridとして使用され、p4 pushコマンドを実行する前に両方のサーバにログインしておく必要があります。

p4 pushコマンドは不可分です。指定のファイルをすべてプッシュするか、どれもプッシュしないかのいずれかになります。

オプション

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

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

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

-n

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

-r remotespec

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

-S stream

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

-v

デバッグの診断を行える冗長モードを指定します。

filespec

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

使用上の留意点

ファイル引数にリビジョン指定子を使えるか?

ファイル引数にリビジョン範囲を使えるか?

最低限必要なアクセスレベル

適用外

適用外


ローカルサーバではread、リモートサーバではwrite

p4 push -r bruno-remote

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

関連コマンド

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

p4 fetch