Helix Core P4コマンドリファレンス (2019.1)

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コマンドでは、反映元ファイルおよび反映先ファイルで共通の編集が最も多いリビジョンが(ベースとして)選択されます。

オプション

-c change

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

-F

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

--from stream

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

-m max

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

-n

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

-Ob

-Obオプションは、(もしあれば)マージ用のbaseリビジョンと各スケジュールされた衝突解決を表示します。

-q

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

g-opts

詳細については、「グローバルオプション」を参照してください。

使用上の留意点

ファイル引数にリビジョン指定子を使えるか? ファイル引数にリビジョン範囲を使えるか? 最低限必要なアクセスレベル

使用可

使用可

open

p4 merge
p4 resolve
p4 submit -d "Update latest changes from parent stream"

引数を何も指定しなかった場合、現在のストリームクライアントに関連付けられているストリームがデフォルトの反映先になり、現在のストリームの親ストリームがデフォルトの反映元になります。

p4 merge --from //Ace/main
p4 resolve
p4 submit -d "Update latest changes from the specified stream"

指定した反映元ストリーム(必ずしも親ストリームであるとは限りません)が、デフォルトの反映先ストリームにマージされます。

p4 merge //mySourceStream/... //myTargetStream/...
p4 resolve
p4 submit -d "Merge changes from source to target"

ストリームの場合: 指定した反映元ストリーム(親ストリームの場合もあれば、それではない場合もあります)が、指定した反映先ストリームにマージされます。

ストリームを使用しない場合: 指定した反映元ブランチが、指定した反映先ストリームにマージされます。

関連コマンド

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

p4 copy

変更を伝播する

p4 integrate

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

p4 resolve