コードライン間でファイルをマージする
新しいコードラインを作成(ブランチングという)またはあるコードラインから別のコードラインにバグの修正や新機能を伝播するには、必要なファイルを反映先のコードラインに反映します。ファイルを反映するには、反映するファイルを開き、反映元と反映先を指定して、開いたファイルを含むチェンジリストをサブミットします。
P4Vは3タイプの反映を行います。
-
ブランチングは、新しいコードラインまたはブランチを作成します。
詳細情報は、ブランチを作成するを参照してください。
-
マージは、ある既存のコードラインから別のコードラインへ変更を伝播し、コードライン間の衝突を解決するように促します。
-
コピーは、あるコードラインから別のコードラインへ、ファイルの複製をそのまま伝播します。
コピーの詳細、ストリーム間のマージダウンとコピーアップを参照してください。
変更を既存のコードラインにマージするには、他のユーザーの変更を上書きしないように、またファイルのリビジョン履歴を保存するために、ファイルの衝突を解決する必要があります。変更をあるコードラインから別のコードラインへ伝播する一般的な方法は、次のとおりです。
-
マージするファイルを開く
-
チェンジリストをサブミットします。
衝突がある場合、Perforceから通知があり、ファイルの衝突解決をスケジュールします。
-
ファイルの衝突を解決して、変更済みファイルをサブミットする方法を設定します。
-
解決済みファイルを含むチェンジリストをサブミットします。
マージのためファイルを開くときに、反映元から反映先へのマッピングは、ファイル仕様またはブランチマッピングのいずれかで設定できます。
-
ファイル仕様: ファイルを開いてマージするときに、反映元ファイルと反映先ファイルを指定します。
-
ブランチマッピング: ファイルを開いてマージするときに、ブランチマッピングを選択します。ブランチマッピングにより、反映元と反映先のコードラインをあらかじめ設定することができます。ブランチマッピングの詳細情報は、『P4ユーザーズガイド』を参照してください。
注意
ストリーム間で変更を伝播するワークフロー("マージアップ、コピーダウン")は、シンプルで具体的です。詳細情報は、ストリーム間のマージダウンとコピーアップを参照してください。
用語についての注意
Perforceコマンドラインクライアントでは、反映という単語は、反映の3つのタイプ(ブランチ、マージ、コピー)をまとめるだけでなく、P4V用語のマージと同じ意味でも使用されます。P4Vでは、マージはあるコードラインから別のコードラインへファイルをマージすることおよびファイル間の衝突を解決すること(P4Mergeの機能)の両方のことをいいます。
マージするファイルを開く
マージするファイルを開く手順は次のとおりです。
-
ソースファイルとフォルダを選択し、コンテキストクリックして[マージ/反映...]を選択します。
[マージ/反映]ダイアログが表示されます。
-
マージ方法は、反映元と反映先のファイルを指定を選択します。
ステップ1で選択したソースファイルが、元のファイル/フォルダフィールドにリストされます。
-
対象ファイルとフォルダを、場所を入力するか参照して指定します。
-
さらにマージオプションを設定するには、[オプション]の三角ボタンをクリックします。
[オプション]パネルが表示されます。
反映オプションを次のように設定します。
衝突解決してサブミットオプション:これらのオプションでは、ファイルを手動または自動のどちらでサブミットするか指定し、どのように衝突を解決するのかを設定します。
フィルターオプション:フィルターにより、マージ待ちのリビジョンのサブセットを選択することができます。詳細情報は、検索とフィルターを参照してください。
詳細オプション:これらのオプションにより、次のようにマージ結果を細分化することができます。
-
新しくブランチされたファイルをワークスペースにコピーしない(-v):対応するファイルをディポからワークスペースに取得せずに、ディポにブランチを作成します。
-
ベースレスマージを有効にする(-i):反映元と反映先が同じ祖先を共有していなくても、最も新しく追加されたソースファイルのリビジョンをベースとして反映を実行します。
-
反映元が削除後に再追加されている場合に変更の反映を試みる(-Di):対象ファイルが削除されソースファイルが変更された場合、このオプションはソースファイルを対象ファイルの一番上に再ブランチします。ソースファイルが削除され対象ファイルが変更された場合、このオプションは対象ファイルを削除します。デフォルトでは、削除されたファイルに大幅な編集を反映することはできません。
-
すべてのリビジョンでの反映を強制実行し、反映履歴を無視する(-f):すでに反映されているものを含む、ソースファイルと対象ファイルのすべてのリビジョンを反映します。通常、指定されたリビジョン範囲で使用します。
-
選択されたファイルの最新リビジョンを取得しない(-h):対象ファイルのワークスペースリビジョンを使用します。デフォルトでは、反映前にワークスペースから自動で対象ファイルのヘッドリビジョンを取得します。
-
間接的な反映履歴を無視する(-1):ベースファイルリビジョンの選択を、直接(親から子または子から親)の反映履歴に制限します。
-
反映元のファイルタイプを反映先ファイルに伝播する (-t):対象ファイルにソースファイルと同じファイルタイプを割り当てます(既存の対象ファイルに反映する場合)
-
「解決結果のブランチ」をスケジュールする(-Rb):新しい対象ファイルを自動でブランチするのではなく、衝突解決結果のブランチをスケジュールします。
-
「解決結果の削除」をスケジュールする(-Rd):対象ファイルを自動で削除するのではなく、解決結果の削除をスケジュールします。
-
以前にマージされたピックアップリビジョンをスキップしてマージ結果を改善する(-Rs):すでに反映済みのチェリーピッキングされたリビジョンをスキップします。このオプションはマージ結果を改善しますが、ファイルごとに複数の衝突解決が必要になります。
-
開かれているファイルをチェックし、マージする前に警告する:選択したファイルのいずれかが別のアクションのために開かれていないか検出します。
注意
P4Vは、反映方法に依存してPerforceコマンドにこれらの反映フラグを適用します。
-
ストリームからストリームへ:
p4 merge
-
ブランチマッピングおよびファイルとフォルダ:
p4 integrate
これらのPerforceコマンドとフラグについての詳細情報は、Perforceコマンドリファレンスを参照してください。
-
-
マージを実行するには、[マージ]をクリックします。
設定したオプションにより、指定のファイルがマージ用に開かれます。
-
衝突を解決してファイルをサブミットします。
[デフォルトを設定...]をクリックしてマージ-反映プリファレンスページを開き、マージ/反映ダイアログのデフォルトの動作を設定します。