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[fromRevRangetoFile

解説

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を指定します。

オプション

-c change

ファイルが作業状態にされる既存の作業中チェンジリストを指定します。

-F

反映先ストリームが反映元のマージを受け入れるように構成されていない場合、強制的にマージ操作を実行します。ストリームにおいて期待される変更フローを決定するには、p4 istatを使用してください。

--from stream

マージ元となる親ストリーム以外のストリームを指定します。

-m max

マージされるファイルの数を制限します。このオプションは多数のファイルを反映するスクリプトに有用です。反映のバッチ処理が可能となり、共有バージョン化サービスの他のユーザに対するロック関連の影響を最小にすることができます。

-n

マージ結果をプレビューします。

-Ob

-Obオプションは、(もしあれば)マージ用のbaseリビジョンを出力します

-q

クワイエットモード。反映、コピー、マージの対象となるファイルのリストに関する、通常の出力メッセージを抑止します。エラーまたは例外的状態に関するメッセージは表示されます。

g-opts

“グローバルオプション”」を参照してください。

使用上の留意点

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

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

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

使用可

使用可

open


p4 merge -r -S //projectX/bruno_dev p4 resolve p4 submit -d "Update dev w latest changes"

最新の変更をメイン(親)からブルーノの開発ストリーム(子)へと組み込みます。

関連コマンド

より安定性の高い隣接ストリームへと変更を昇格させる。

p4 copy

変更を伝播する。

p4 integrate

ファイルの衝突を解決する。

p4 resolve