P4Vユーザーガイド (2019.1)

コードライン間でファイルをマージする

新しいコードラインを作成(ブランチング(名詞) Perforceディポの特定の場所にコピーされた結果その場所に存在する関連ファイル一式。その場所に追加されたものとは対照的になります。関連するファイルの集合は多くの場合、コードラインと呼ばれます。(動詞) 'p4 integrate'、'p4 copy'、または'p4 populate'コマンドを使用して別のコードラインをコピーしてコードラインを作成すること。という)またはあるコードラインから別のコードラインにバグの修正や新機能を伝播するには、必要なファイルを反映先のコードラインに反映します。ファイルを反映するには、反映するファイルを開き、反映元と反映先を指定して、開いたファイルを含むチェンジリストをサブミットします。

P4Vは、3種類の反映を実行します。

  • ブランチングは、新しいコードラインまたはブランチを作成します。

    詳細情報は、「ブランチを作成する」を参照してください。

  • マージは、ある既存のコードラインから別のコードラインへ変更を伝播し、コードライン間の衝突を解決するように促します。
  • コピーは、あるコードラインから別のコードラインへ、ファイルの複製をそのまま伝播します。

    コピーについての詳細情報は、「ストリーム間のマージダウンとコピーアップ」を参照してください。

変更内容を既存のコードラインにマージするには、ファイルの衝突を解決する必要があります。これにより、他のユーザが行った変更の上書きが防止され、ファイルのリビジョン履歴が保存されます。変更をあるコードラインから別のコードラインへ伝播する一般的な方法は、次のとおりです。

  1. マージするファイルを開く
  2. チェンジリストをサブミットします。

    衝突が存在する場合は、それを知らせるための通知を受け取ります。また、P4Vにより、ファイルの衝突解決がスケジュール設定されます。

  3. ファイルの衝突を解決して、変更済みファイルをサブミットする方法を設定します。
  4. 解決済みファイルを含むチェンジリストをサブミットします。

マージのためファイルを開くときに、反映元から反映先へのマッピングは、ファイル仕様またはブランチマッピングのいずれかで設定できます。

  • ファイル仕様: ファイルを開いてマージするときに、反映元ファイルと反映先ファイルを指定します。
  • ブランチマッピング: ファイルを開いてマージするときに、ブランチマッピングを選択します。ブランチマッピングにより、反映元と反映先のコードラインをあらかじめ設定することができます。ブランチマッピングの詳細については、Helix Coreサーバユーザーガイドを参照してください。
注意

ストリーム間で変更を伝播するワークフロー("マージアップ、コピーダウン")は、シンプルで具体的です。詳細情報は、「ストリーム間のマージダウンとコピーアップ」を参照してください。

マージするファイルを開く

マージするファイルを開く手順は次のとおりです。

  1. マージ元のファイルとフォルダを選択して右クリックし、[マージ/反映]​を選択します。

    [マージ/反映]ダイアログが表示されます。

  2. マージ方法は、反映元と反映先のファイルを指定を選択します。

    ステップ1で選択したソースファイルが、元のファイル/フォルダフィールドにリストされます。

  3. 対象ファイルとフォルダを、場所を入力するか参照して指定します。
  4. さらにマージオプションを設定するには、[オプション]の三角ボタンをクリックします。

    [オプション]パネルが表示されます。

    反映オプションを次のように設定します。

    [衝突解決してサブミット]オプション: これらのオプションでは、ファイルを手動または自動のどちらでサブミットするかを指定し、どのように衝突を解決するのかを設定します。

    フィルタオプション: フィルタリングにより、マージ待ちのリビジョンのサブセットを選択することができます。詳細情報は、「検索とフィルタ」を参照してください。

    詳細オプション: これらのオプションにより、次のようにマージ結果を細分化することができます。

    • 新しくブランチされたファイルをワークスペースにコピーしない(-v): 対応するファイルをディポからワークスペースに取得することなく、ディポ内にブランチを作成します。
    • ベースレスマージを有効にする(-i): 反映元と反映先が同じ祖先を共有していない場合であっても、最後に追加された反映元ファイルのリビジョンをベースとして反映が実行されます。
    • 反映元が削除後に再追加されている場合に変更の反映を試みる(-Di): 反映先ファイルが削除され反映元ファイルが変更されている場合に、反映元ファイルが反映先ファイルの上に再ブランチされます。反映元ファイルが削除され反映先ファイルが変更されている場合は、反映先ファイルが削除されます。デフォルトでは、大幅な編集を削除されたファイルに反映することはできません。
    • すべてのリビジョンでの反映を強制実行し、反映履歴を無視する(-f): すでに反映されているリビジョンを含め、反映元ファイルと反映先ファイルのすべてのリビジョンが反映されます。通常、指定されたリビジョン範囲で使用します。
    • 選択されたファイルの最新リビジョンを取得しない(-h): 反映先ファイルのワークスペースリビジョンが使用されます。デフォルトでは、反映先ファイルの最新リビジョンは反映前に自動でワークスペース内に取得されます。
    • 間接的な反映履歴を無視する(-1): ベースファイルリビジョンの選択が、直接(親から子または子から親)の反映履歴だけに制限されます。
    • 反映元のファイルタイプを反映先ファイルに伝播する (-t): 反映先ファイルに、反映元ファイルと同じファイルタイプが割り当てられます(既存の反映先ファイルに反映する場合)。
    • 「解決結果のブランチ」をスケジュールする(-Rb): 新しい反映先ファイルを自動的にブランチするのではなく、衝突解決結果のブランチがスケジュール設定されます。
    • 「解決結果の削除」をスケジュールする(-Rd): 反映先ファイルを自動的に削除するのではなく、解決結果の削除がスケジュール設定されます。
    • 以前にマージされたピックアップリビジョンをスキップしてマージ結果を改善する(-Rs): 反映済みのチェリーピッキングされたリビジョンがスキップされます。このオプションはマージ結果を改善しますが、ファイルごとに複数の衝突解決が必要になります。
    • 開かれているファイルをチェックし、マージする前に警告する: 選択したファイルのいずれかが別の操作用に開かれていないかどうかが検出されます。

      注意

      P4Vは、反映方法に応じて、各種のP4コマンドを使用してこれらの反映フラグを適用します。

      • ストリームからストリームへ: p4 merge
      • ブランチマッピングおよびファイルとフォルダ: p4 integrate

      これらのP4コマンドとフラグにつての詳細情報は、「Helix Core P4コマンドリファレンス」を参照してください。

  5. マージを実行するには、[マージ]をクリックします。

    設定したオプションにより、指定のファイルがマージ用に開かれます。

  6. 衝突を解決してファイルをサブミットします。

[デフォルトを設定]をクリックしてマージ-反映プリファレンスページを開き、[マージ/反映]ダイアログのデフォルトの動作を設定します。