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

ファイルを既存のコードラインにマージしようとするとき、またはファイルをチェックアウトさせるときに別のユーザーが編集やサブミットをしたファイルが含まれているチェンジリストをサブミットした場合に衝突が発生します。衝突が発生すると、Perforceはファイルの衝突の解決をスケジュールします。衝突を解決してから、衝突しているファイルを含むチェンジリストをサブミットする必要があります。解決する必要のあるファイルを表示するために、P4Vではクエスチョンマークのバッジを付けて表示されます。

衝突を解決する必要のあるファイルを含むチェンジリストをサブミットしようとすると、サブミットチェンジリストフォームに指示が表示され、サブミットボタンは灰色表示になります。ダイアログに[古い日付]と表示され、ファイルに黄色い三角形のバッジが付いて表示された場合は、そのファイルをコンテキストクリックして[最新リビジョンを取得]を選択し、ファイルの最新リビジョンを取得します。この操作では、ワークスペースにあるファイルのコピーは上書きされません。最新のリビジョンを取得後、ファイルの衝突を解決できます。ファイルの衝突は、個別に、または複数のファイルを1度に解決することができます。

解決できる衝突の原因は、内容の変更、ファイルタイプの変更、属性の変更、移動、削除およびブランチングです。

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

個別のファイルの衝突を解決する手順は次のとおりです。

  1. ファイルをコンテキストクリックして[衝突解決...]を選択します。

  2. デフォルトでは、[衝突解決]ダイアログが対話式モードで開きます。

    ファイルに複数の解決タイプが必要な場合(たとえば、ファイルをチェックアウトした後に別のユーザーが内容とファイルタイプの両方の変更をチェックインしていた場合など)、[複数のファイルを自動解決]を選択できますが、デフォルトは[ファイルを1つずつ対話式で衝突解決する]です。この場合、衝突解決の各タイプは[衝突を解決するファイル]リストで別々の行で一覧表示されます。

    各ファイルと衝突解決のタイプの組み合わせにおいて、選択したファイルの差分と衝突に基づいてP4Vはアクションを推奨します。この推奨の後には、説明が続いて表示されます。オプションのアクションボタンは、青色で強調表示されます。

  3. (オプション)衝突解決されるファイルについての詳細情報は、[追加アクション]のリストからオプションを選択してください。

    • ファイルをオープン:ファイルのどのバージョンでも個別に開く、またはマージされた結果ファイルをあらゆるエディタで開くことができます。

    • Diff:ファイルを、ベースファイルやマージ結果などと相互に比較することができます。

    • ファイル履歴:いずれかのファイルのリビジョン履歴を表示します。

    • タイムラップビュー:タイムラップビューツールを使用して、いずれかのファイルの履歴を表示します。

    • リビジョングラフ:リビジョングラフツールを使用して、いずれかのファイルのコードライン履歴を表示します。

  4. 内容の衝突を解決するときにバイナリーファイルをテキストとしてマージするかを選択します。

    このオプションを選択すると、P4Vはバイナリーファイルをテキストファイルのように扱い、ソースファイルと対象ファイル間でテキストのマージを試行します。

  5. 推奨されるアクション(青色で強調表示)に従って実行するか、別の衝突解決オプションを選択します。

    • 反映元を承諾:ワークスペースのファイルのコピーをディポのバージョンと置き換え、自分の変更内容は破棄します。

    • 反映先を承諾:ワークスペースのファイルを承諾し、ファイルのサブミット時にディポのバージョンを上書きします。

    • マージ結果を承諾:ワークスペースのファイルを、画面の上部の枠内にリストされている2つのファイルのマージ結果と置き換えます。

    • マージツールを実行:マージツールを開いてファイルを編集し、マージ結果を保存します(P4Mergeはデフォルトのマージツールですが、P4Vプリファレンスで別のツールも選択できます)。

    各ファイルの衝突が解決されると、[衝突を解決するファイル]のリストから削除されます。

  6. 変更をチェックインするには、衝突を解決したファイルを含むチェンジリストをサブミットします。

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

複数のファイルの衝突を1度に自動で解決する手順は、次のとおりです。

  1. ファイルを選択し、コンテキストクリックして[衝突解決...]を選択します。

  2. 複数のファイルを自動解決を選択します。

    [衝突解決]ダイアログに[衝突を解決するファイル]が表示されます。ファイルの衝突が解決されると、このリストから削除されます。

    ファイルの衝突の自動解決を特定の解決タイプまたはファイルタイプに制限するには、選択ドロップダウンリストからタイプを選択します。これは、さまざまな衝突解決タイプで別々の自動解決アクションが必要な場合や、自分で対話式に衝突解決をする必要のある解決やファイルタイプに便利です。たとえば、衝突を解決するファイルのリストにバイナリーファイルとテキストファイルの両方が含まれている場合、自動解決するテキストファイルを選択し、バイナリファイルは対話式に解決する必要があります。

    ダイアログには、選択した行の番号がリストのすぐ上に表示されます。

  3. 内容の衝突を解決するときにバイナリーファイルをテキストとしてマージするかを選択します。

    このオプションを選択すると、P4Vはバイナリーファイルをテキストファイルのように扱い、ソースファイルと対象ファイル間でテキストのマージを試行します。

  4. 衝突解決方法を選択します。

    • 安全な自動衝突解決(マージなし):ソースファイル(ディポのファイル)に唯一の変更がある場合、ソースファイルを承諾します。対象ファイル(ワークスペースのファイル)に唯一の変更がある場合、対象ファイルを承諾します。ソースファイルと対象ファイルの両方が変更されている場合、衝突は解決されません。

    • 自動衝突解決(マージ許可):ソースファイルに唯一の変更がある場合、ソースファイルを承諾します。対象ファイルに唯一の変更がある場合、対象ファイルを承諾します。マージは、ソースファイルと対象ファイルの両方に変更があり、衝突がない場合に変更します。

    • 反映元を承諾:ワークスペースのファイルのコピーをディポのバージョンと置き換え、自分の変更内容は破棄します。

    • 反映先を承諾:ワークスペースのファイルを承諾し、ファイルのサブミット時にディポのバージョンを上書きします。

    • 自動衝突解決(衝突がある場合マージ許可):ソースファイルに唯一の変更がある場合、ソースファイルを承諾します。対象ファイルに唯一の変更がある場合、対象ファイルを承諾します。ソースファイルと対象ファイルの両方に変更がある場合、衝突があってもマージ済みファイルを作成します。衝突がある場合、衝突を示すテキスト表記には両方のバージョンが含まれます。

  5. (オプション)[自動処理のデフォルトとして設定]を選択して、自分の選択を複数ファイルの自動衝突解決のデフォルトにします。

  6. [自動衝突解決]をクリックします。

    衝突がある場合にマージを許可しない自動衝突解決オプションを選択している場合、衝突があるとP4Vはファイルの衝突を対話式に1つずつ解決するように推奨します。

  7. (オプション)複数の衝突解決タイプを個別に自動で衝突解決している場合、繰り返します。

  8. 変更をチェックインするには、衝突を解決したファイルを含むチェンジリストをサブミットします。

複数のファイルを1度に衝突解決する手順は、次のとおりです(衝突がある場合に推奨します)。

  1. [ファイルを1つずつ対話式で衝突解決する]を選択します。

  2. 個別のファイルの衝突を解決するに説明されている手順を行います。