p4 merge
あるファイル集合を別のファイル集合にマージします。
構文
p4 [g-opts] merge [-c change] [-m max] [-n -Ob -q -F] [--from stream] [toFileSpec[RevSpec]]
p4 [g-opts] merge [-c change] [-m max] [-n -Ob -q] fromFileSpec[revSpec] toFileSpec
説明
p4 merge
コマンドはp4 integrate
コマンドの簡易版であり、変更の集合を反映元から反映先のファイル群にマージします。 このコマンドは、スケジュールされた衝突解決を出力します。 このコマンドはストリームおよび分散バージョン管理での使用を想定していますが、従来のHelixサーバブランチにも使用できます。
p4 resolve
を使用して、すべての変更の衝突を解決します。 それから、p4 submit
を使用してマージ済みファイルをディポにコミットします。 衝突未解決のファイルのサブミットはできません。p4 shelve
を使用して、マージ済みファイルを保留、またはp4 revert
を使用してマージ済みファイルを削除します。p4 integrated
コマンドまたはp4 filelog
コマンドを使用してマージ履歴を表示します。
ほとんどの場合、変更をストリーム間(またはブランチ間)で伝播するには、コマンドとしてp4 merge
およびp4 copy
を使用します。
引数を何も指定しなかった場合、現在のストリームクライアントに関連付けられているストリームがデフォルトの反映先になり、現在のストリームの親ストリームがデフォルトの反映元になります。
--from
stream_name
で異なる反映元を指定することができます。これは-P
オプションのエイリアスです。 ストリームを、現在のストリームディポに関連するディレクトリ名として指定することができます。 例えば、--from //Ace/main
の代わりに--from main
を指定することができます。
ステージング領域としてクライアントワークスペースを使用し、p4
merge
は影響するすべての反映先ファイルについて反映元の変更ごとに衝突解決を行います。 現在のクライアントビューの外にある反映先ファイルは影響を受けません。 反映元ファイルは、クライアントビューにある必要はありません。
反映先の各ファイルは反映元のファイルにマッピングされます。 ファイルの移動や名前の変更にp4 move
が使用された場合、マッピングでは移動や名前変更したファイルの調整を自動で行います。 反映元および反映先ファイルの範囲には、マッピングで調整される古い名前および新しい名前のファイルの両方が含まれます。 移動済み反映元ファイルは、移動の衝突解決を反映先ファイルで行うようにスケジュールします。 マージされるリビジョンは、revSpec
パラメータで制限することができます。 例えば、対象範囲に新旧のファイル両方が含まれていない場合、移動/追加または移動/削除のいずれかの移動操作の組み合わせで1つのファイルにマージを実行した場合、エラーメッセージが表示されます。
ストリームにp4 merge
を使用すると、より安定性の高い親ストリームの最新状態が子ストリームに反映されます。 これにより、安定性のある親へと変更を昇格させて戻す際に、親にチェックインされていた他の変更が誤って上書きされないようにすることができます。 ファイルは作業中チェンジリストで作業状態にされ、必要に応じて衝突解決がスケジュールされます。 親ストリームを更新するには、衝突解決後にサブミットします。 デフォルトでは、p4 merge
は親ストリームから、または--from
オプションで指定された別のストリームから現在のストリームに変更をマージします。 反映元および反映先は、ファイルパスのペアとしてコマンドラインで指定することもできます。 さらに複雑なマージのマッピングは、ブランチ仕様でp4 integrate
を使用して指定することができます。 -F
オプションを使用して、ストリームの予期されるフローに対して強制的にマージを行うことができます。 また、バーチャルストリームに基づいてブランチビューを生成するように強制することもできます。 マッピング自体は基盤となる実際のストリームを参照します。
p4 integrate
コマンドとp4 merge
コマンドでは、反映元ファイルおよび反映先ファイルで共通の編集が最も多いリビジョンが(ベースとして)選択されます。
オプション
|
ファイルが作業状態にされる既存の作業中チェンジリストを指定します。 |
|
マージ操作の強制。 反映先ストリームが反映元のマージを受け入れるように構成されていない場合に実行します。 ストリームの正しい変更フローを判断するには、 |
|
マージ元となる親ストリーム以外のストリームを指定します。 |
|
マージされるファイルの数を制限します。 このオプションは多数のファイルを反映するスクリプトに有用です。 反映のバッチ処理が可能となり、共有バージョニングサービスの他のユーザに対するロック関連の影響を最小にすることができます。 |
|
マージ結果をプレビューします。 |
|
|
|
クワイエットモードは、反映、コピー、マージの対象となるファイルのリストに関する、通常の出力メッセージを抑止します。 エラーまたは例外的状態に関するメッセージは表示されます。 |
|
詳細については、「グローバルオプション」を参照してください。 |
使用上の留意点
ファイル引数にリビジョン指定子を使えるか? | ファイル引数にリビジョン範囲を使えるか? | 最低限必要なアクセスレベル |
---|---|---|
使用可 |
使用可 |
|
例
|
引数を何も指定しなかった場合、現在のストリームクライアントに関連付けられているストリームがデフォルトの反映先になり、現在のストリームの親ストリームがデフォルトの反映元になります。 |
|
指定した反映元ストリーム(必ずしも親ストリームであるとは限りません)が、デフォルトの反映先ストリームにマージされます。 |
|
ストリームの場合: 指定した反映元ストリーム(親ストリームの場合もあれば、それではない場合もあります)が、指定した反映先ストリームにマージされます。 ストリームを使用しない場合: 指定した反映元ブランチが、指定した反映先ストリームにマージされます。 |
関連コマンド
より安定性の高い隣接ストリームへと変更を昇格させる |
|
変更を伝播する |
|
ファイルの衝突を解決する |