Main Content

競合の解決

競合の解決

自分と別のユーザーが別々のサンドボックスまたは別々のブランチに含まれている同じファイルに変更を加えた場合、変更済みファイルをコミットしようとすると、競合に関するメッセージが表示されます。必要に応じて競合マーカーを抽出し、競合の原因となっている違いを比較して競合を解決します。

  1. 競合のあるファイルを [変更済み ("ファイルの数")] タブで見つけます。

    ソース管理の概要ステータスを使用して、フォルダーの競合のある内容を特定します。フォルダーには、ロールアップされたソース管理ステータスが表示されます。このため、特に競合のあるファイルの変更を簡単に特定できます。フォルダーのソース管理ステータスにカーソルを合わせると、そのフォルダー内の変更されたファイル、競合のあるファイル、追加されたファイル、削除されたファイルの数を示すツールヒントを表示できます。

    ヒント

    フォルダーを展開せずにファイルを表示するには、[リスト] レイアウトを使用します。

  2. 競合を示す赤い警告記号の付いたファイルのソース管理ステータス列 ([Git] または [SVN]) を確認します。

  3. 競合のあるファイルを右クリックして、[競合を表示] を選択し、バージョンを比較します。

  4. 競合を調べます。プロジェクトでは、競合のあるファイル間の差分を示す比較レポートが開きます。

    • SVN では、ファイルと競合するファイルのバージョンの違いが示されます。

    • Git™ では、ブランチ上のファイルと、マージ先のブランチ上のファイル間の違いが示されます。

    • モデル ファイルの詳細については、比較レポートからの Simulink モデルのマージを参照してください。

  5. 比較レポートを使用して、競合の解決方法を決定します。

    競合を解決するには、以下の操作を実行します。

    • レポートを使用して、リビジョン間の変更をマージします。

    • 1 つの変更セットを他の変更セットで上書きすることを決定します。

    • ファイルを編集するか、ラベルを変更するか、プロジェクトの説明を編集して、プロジェクトから手動で変更を行います。

    比較ツールを使用したリビジョン間の変更のマージについての詳細は、テキスト ファイルのマージおよびモデルのマージを参照してください。

  6. 変更を解決し、サンドボックス内のバージョンをコミットする準備ができたら、プロジェクトでファイルを右クリックし、[ソース管理][競合が解決済みであるとしてマークする] を選択します。マージ ツールを使用して競合解決済みとしてマークするか、プロジェクトで競合解決済みとして手動でマークすることができます。

    Git では、[Git] ペインの [ブランチのステータス] が、MERGING から SAFE へと変化します。

  7. [変更済み ("ファイルの数")] タブを選択して変更を確認します。[プロジェクト] タブで、[コミット] をクリックします。

テキスト ファイルのマージ

テキスト ファイルを比較する場合は、1 つのファイルの変更を他のファイルにマージできます。変更のマージは、バージョンの異なるファイル間の競合を解決する場合に役に立ちます。

競合マーカーはテキスト比較レポートに次のように表示されます。

<<<<<<< .mine
比較レポートに競合マーカーが含まれる場合は、競合マーカーを抽出してからマージします (競合マーカーの抽出を参照)。

ヒント

左から右にのみマージできます。ソース管理の別のバージョンと比較する場合、右のファイルが、サンドボックス内のバージョンになります。左のファイルは、競合 (filename_theirs など) を引き起こしている前のバージョンまたは別のバージョンの一時的なコピーです。比較レポートの上部で左および右のファイルのファイル パスを確認します。左 (一時的なコピー) ファイルから右ファイルへ差分をマージして競合を解決します。

  1. 比較ツール レポートで差分を選択し、[内容の置換] をクリックします。選択された差分が左のファイルから右のファイルへコピーされます。

    内容の置換を元に戻すには、[元に戻す] をクリックします。

    または、インラインの [内容の置換] アイコンと [元に戻す] アイコンを使用します。

    レポートの先頭のマージされたファイル名に、変更未保存 (ダーティ) フラグ (filename.m*) が表示され、ファイルに保存されていない変更が含まれることがわかります。

  2. マージの変更を保存して、競合を解決済みとしてマークするには、[確定して閉じる] をクリックします。

モデルのマージ

比較ツール レポートでは、リビジョン間で変更をマージできます。詳細については、比較レポートからの Simulink モデルのマージを参照してください。

マージして競合を解決した後に、マージ ツールで競合解決済みとして自動的にマークするか、競合解決済みとして手動でマークすることができます。その後、変更をコミットします (競合の解決を参照)。

競合マーカーの抽出

競合マーカーとは

ソース管理ツールでは、バイナリとして登録されていないファイル (テキスト ファイルなど) に競合マーカーを挿入できます。プロジェクト ツールを使用して、競合マーカーを抽出し、競合の原因となっているファイルを比較します。このプロセスは、競合の解決方法を決定するのに役立ちます。

注意

モデル ファイルをソース管理ツールに登録して、モデル ファイルで競合マーカーの挿入やモデルの破損が生じないようにします。ソース管理ツールへのモデル ファイルの登録を参照してください。モデルに競合マーカーが含まれている場合、プロジェクト ツールを使用して競合を解決できますが、プロジェクトからモデルを開いている場合に限られます。現在のフォルダーまたはファイル エクスプローラーから競合マーカーを含むモデルを開くと、Simulink® では競合マーカーが認識されないため失敗する可能性があります。

競合マーカーは次の形式で表されます。

<<<<<<<["mine" file descriptor]
["mine" file content]
=======
["theirs" file content]
>>>>>>>["theirs" file descriptor]

競合ありとしてマークされていて競合マーカーが含まれるファイルを開こうとすると、[競合マーカーが見つかりました] ダイアログ ボックスが開きます。指示に従って、競合マーカーを抽出してファイルを修正します。競合マーカーを抽出した後、競合を解決します (競合の解決を参照)。

競合マーカーを表示するには、[競合マーカーが見つかりました] ダイアログ ボックスで、[ファイルの読み込み] をクリックします。Simulink では競合マーカーは認識されないため、モデル ファイルの読み込みは行わないでください。代わりに、[ファイルの修正] をクリックして、競合マーカーを抽出します。

既定では、競合のあるファイルについてのみ競合マーカーの確認が行われます。この基本設定を変更して、すべてのファイルを確認したり、ファイルを確認しないこともできます。[プロジェクト] タブで [基本設定] をクリックし、設定を変更します。

競合マーカーの抽出

競合のあるファイルを開くか [競合を表示] を選択すると、プロジェクトはファイルの競合マーカーを確認し、競合マーカーを抽出しようとします。基本設定を変更しない限り、競合のあるファイルについてのみ競合マーカーの確認が行われます。

ただし、競合とマークされていないファイルの場合、そのまま競合マークが含まれていることがあります。これは、別のユーザーが競合マーカーを削除せずに競合が解決したとマークし、ファイルをコミットした場合に発生します。競合があるとマークされていないファイルに競合マーカーが確認された場合、競合マーカーを削除できます。

  1. プロジェクトでファイルを右クリックして、[ソース管理][競合マーカーをファイルに抽出] を選択します。

  2. 競合のあるファイルに "自分の" リビジョンをコピーする既定のオプションをそのまま使用します。[比較] チェック ボックスをオンのままにします。[抽出] をクリックします。

  3. 比較ツール レポートを通常どおり使用して、競合の解決を続行します。

関連するトピック