p4 push
ローカルサーバのサブミット済みファイルをリモートサーバにコピーします。
分散バージョン管理で使用。 詳しくは、分散バージョニング環境におけるHelix Coreサーバの利用 (DVCS)を参照してください。
構文規則
p4 [g-opts] push [-n -v] [-r remotespec] [-Ox] [-S stream | filespec]
p4 [g-opts] push [-n -v] [-r remotespec] [-Ox] -s shelf
説明
(DVCS) p4 push
を実行すると、指定したローカルサーバからリモートサーバに
次の項目がコピーされます。
- 指定したファイルのセット
- 指定したファイルをサブミットしたチェンジリスト
- ファイルの属性
- チェンジリストに関連付けられているすべての修正(ただし、修正によって関連付けられたジョブが、 リモートサーバ内に既に存在している場合のみ。存在しない場合、修正はコピーされません)
- プッシュ対象のファイルに対する反映を記述するすべての反映記録
プッシュが可能なのは、プッシュされるファイルがリモートサーバに完全に適合していて、 共有されている共通の履歴に基づいて厳密に構築されている場合のみです。 衝突やずれが多数ある場合、プッシュは拒否されます。それ以外の場合、チェンジリストは リモートサーバの新しいサブミット済みチェンジリストになります。
このコマンドの2番目の形式の場合、1つ以上のサブミット済みチェンジリストではなく、 保留状態のチェンジリストがプッシュされます。その際に衝突は回避され、 リモートサーバ上で新しい変更が保留されます。
チェンジリストがリモートサーバに追加されると、新しいチェンジ番号が付与されますが、 ファイルが保持する記述、ユーザ、タイプ、ワークスペースおよびファイルのセットは同じです。
ファイルがリモートサーバに追加されると、同じチェンジリストに保持され、 現在の最新リビジョンの後に開始される新規のリビジョンになります。 この新しいリビジョンでは、元のファイルと同じリビジョン番号、ファイルタイプ、 操作、日付、タイムスタンプ、ダイジェスト、ファイルサイズが保持されます。
そのチェンジリストがリモートサーバに新規でサブミットされたチェンジリストだとしても、 リモートサーバではサブミットトリガは実行されません。
特定のファイルリビジョンをサーバAからサーバBとサーバCにコピーし、p4 attribute -f
を使用して
サーバBのリビジョンの属性を変更した場合、サーバBのリビジョンだけが影響を受けます。
変更がプッシュまたはフェッチされると、変更するType:フィールドは「defaultChangeType」のターゲットサーバーの構成可能変数の設定を無視します。
通常、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.allowpush
を1
に設定し、
目的のサーバではserver.allowpush
を2
に設定します。
ファイルタイプ修飾子+k
、+l
、+S
には、
特別な考慮事項があります。
+k
タイプのファイルは、プッシュされたときにダイジェストをクリアします。
これは、特定のサーバ間マージの衝突が検出されないことを意味します。
プッシュ後にリモートサーバでダイジェストを再生成するには、
p4 verify
を使用します。
+l
タイプのファイルをプッシュする場合、
リモートサーバで作業中チェンジリストによりファイルが作業中であっても、
新しいファイルがサーバに追加されます。
+S
タイプのファイルをプッシュする場合、指定の制限を超える古いアーカイブは
p4 push
コマンドで消去されません。
|
すべての正確性チェックを実行します。ただし、ファイルまたはチェンジリストは リモートサーバにプッシュしません。 |
|
このオプションを指定して このオプションを機能させるには、 |
|
このオプションを指定して このオプションを機能させるには、 |
|
このオプションを指定して このオプションを機能させるには、 |
|
リモートサーバのアドレスを含むリモート仕様、およびリモートサーバからプッシュされた ファイルの再マッピングに使用されるファイルマッピングを指定します。 |
--remote-user | このオプションを使用して、ターゲットサーバのユーザ名を指定し、リモート仕様内の RemoteUserフィールドを上書きすることができます。「p4 remote」を参照してください。 |
|
サブミット済みの1つ以上のチェンジリストではなく、プッシュ対象の保留状態の チェンジリストを指定します。詳細については、 分散バージョニング環境におけるHelix Coreサーバの利用の「フェッチとプッシュ」の章中の 「保留状態のチェンジリストのフェッチとプッシュ」セクションを参照してください。 |
|
プッシュする特定のストリームを指定します。ストリームを指定した場合、ファイルを指定することはできません。 |
|
デバッグの診断を行える冗長モードを指定します。 冗長モードを選択する必要があります。 冗長モードをオンにすると、冗長レベルを正確に制御することができます。 具体的には、以下の情報を表示するかどうかを制御することができます。
上記のオプションは、自由に組み合わせることができます。 デフォルトでは、すべてのチェンジリストに関する情報が表示されます。 |
|
プッシュするファイルを1つまたは複数指定します。1つまたは複数のファイルを指定した場合、 |
使用上の注意点
ファイル引数でリビジョン指定子を使用できるか? | ファイル引数でリビジョン範囲を使用できるか? | 最低限必要なアクセスレベル |
---|---|---|
適用外 |
適用外 |
ローカルサーバの場合はread権限、 |
例
|
リモート仕様で指定された1つまたは複数のファイルをプッシュします。 |
関連コマンド
リモートサーバからローカルサーバへファイルをコピーする |