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 [g-opts] merge -S stream [-As | -Af]
説明
ファイルをマージする
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 merge -S stream: このコマンドを実行すると、反映元ストリームの伝播可能フィールドが反映先ストリーム仕様内にマージされます。ストリームファイルとともに、反映先ストリーム仕様が編集用にオープンされます。ストリーム仕様だけをマージする場合はp4 merge -S stream -Asコマンドを使用し、ファイルだけをマージする場合はp4 merge -S stream -Afコマンドを使用します。
p4 integrate
コマンドとp4 merge
コマンドでは、
反映元ファイルおよび反映先ファイルで共通の編集が最も多い
リビジョンが(ベースとして)選択されます。
オプション
|
ファイルが作業状態にされる既存の作業中チェンジリストを指定します。 |
|
マージ操作の強制。反映先ストリームが反映元のマージを受け入れるように構成されていない場合に実行します。
ストリームの正しい変更フローを判断するには、 |
|
マージ元となる親ストリーム以外のストリームを指定します。 |
|
マージされるファイルの数を制限します。このオプションは多数のファイルを反映するスクリプトに有用です。 反映のバッチ処理が可能となり、共有バージョン化サービスの他のユーザに対する ロック関連の影響を最小にすることができます。 |
|
マージ結果をプレビューします。 |
|
|
|
クワイエットモードは、反映、コピー、マージの対象となるファイルのリストに関する、 通常の出力メッセージを抑止します。 エラーまたは例外的状態に関するメッセージは表示されます。 |
-S stream |
反映元ストリーム仕様の伝播可能なフィールドが反映先ストリーム仕様内にマージされます。 ストリームファイルとともに、反映先ストリーム仕様が編集用にオープンされます。 ストリーム仕様だけをマージする場合は、p4 merge -S stream -Asコマンドを使用します。 ファイルだけをマージする場合は、p4 merge -S stream -Afコマンドを使用します。 |
|
「グローバルオプション」を参照してください。 |
使用上の注意点
ファイル引数でリビジョン指定子を使用できるか? | ファイル引数でリビジョン範囲を使用できるか? | 最低限必要なアクセスレベル |
---|---|---|
はい |
はい |
|
例
|
引数を何も指定しなかった場合、現在のストリームクライアントに関連付けられているストリームが デフォルトの反映先になり、現在のストリームの親ストリームがデフォルトの反映元になります。 |
|
指定した反映元ストリーム(必ずしも親ストリームであるとは限りません)が、デフォルトの反映先ストリームにマージされます。 |
|
ストリームの場合: 指定した反映元ストリーム(親ストリームの場合もあれば、それではない場合もあります)が、指定した反映先ストリームにマージされます。 ストリームを使用しない場合: 指定した反映元ブランチが、指定した反映先ストリームにマージされます。 |
関連コマンド
より安定性の高い隣接ストリームへと変更を昇格させる |
|
変更を伝播する |
|
ファイルの衝突を解決する |