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