Simulink 3-way マージを使用したプロジェクト内の競合の解決
この例では、Simulink® 3-way マージ ツールを使用してプロジェクトにおける Simulink モデル内の競合を解決する方法を示します。結果ファイル内の Simulink モデルの相違点を表示およびマージできます。
Simulink モデルの変更と競合
[コマンドのコピー] ボタンを使用して、競合を含むサンプル プロジェクトをダウンロードします。サンプル プロジェクトは Git™ ソース管理下に置かれます。同僚による main Git のブランチへの変更を taskBranch にマージしようとすると、その操作により競合が生じます。
3-way マージ ツールを使用して競合を解決するために、ローカル ファイル ("Mine"、この例では taskBranch ブランチ)、競合するリビジョン ("Theirs"、この例では main ブランチ)、およびこれらの 2 つのファイルの共通の先祖 ("Base") を調べます。
Theirs -
mainブランチで作業している同僚によって、pilot model サブシステムでパイロットの入力コマンドの振幅に明示的な "Gain" ブロックを使用するように更新されました。同僚によって [シミュレーション終了時間] パラメーターも更新されました。Mine - t
askBranchブランチで pilot model サブシステムのコンフィギュレーション設定を一部変更しました。
マージ ツールは、3-way マージ レポートを開く前に、競合のない相違点を自動的にマージします。以下の手順に従い、自動マージの選択を確認し、必要な編集を適用し、残りの相違点を解決する方法を指定します。競合を解決した後、解決したモデルをソース管理にコミットします。
Simulink 3-way マージを開く
[プロジェクト] パネルで、競合のあるファイルを探します。slproject_f14 ファイルではソース管理列に赤色の警告アイコンが表示されますが、これは競合を示します。
競合の詳細レポートを表示するには、slproject_f14 ファイルを右クリックして [ソース管理]、[競合を表示] をクリックします。あるいは、[ソース管理] パネルの [変更済みファイル] セクションで slproject_f14 ファイルを右クリックし、[競合を表示] を選択します。
ソース管理下でプロジェクトを操作しやすくするために、[プロジェクト] パネルと [ソース管理] パネルをグループ化します。これを行うには、いずれかのパネル アイコンをもう一方のパネル アイコンの横にドラッグします。[ソース管理] アイコンがサイドバーにない場合は、[パネルをさらに開く] ボタン
をクリックして追加します。

変更点の表示
3-way マージ ツールは、このファイル競合を発生させる 2 つの Simulink モデルの変更点を示します。

[main]、[taskBranch]、[Base] の各ペインは、競合するリビジョン、自分のリビジョン、およびこれらのベースとなる先祖ファイルの差分を示します。
[ターゲット] ペインは、変更をマージするファイルを示します。マージ結果を確定すると、ツールはこの一時ファイルをプロジェクトにコピーします。
右下隅にある概要テーブルでは、マージ ツールが競合のない 4 つの相違点を自動的に解決したことが示されています。このテーブルには、残りの 1 つの変更点を解決しなければならないことも示されています。

モデル ファイルの個々の相違点を視覚的に調べることができます。
相違点を調べるには、いずれかのツリーの行をクリックします。マージ ツールは、たとえば、Simulink エディターや [コンフィギュレーション パラメーター] ダイアログ ボックスなどの、[3-way マージ] ウィンドウの右側のエディターに、各モデルの変更を表示します。
[マージ] タブの [強調表示] セクションで、[最上位モデル] ボタンまたは [最下位モデル] ボタンをクリックして表示するモデルを選択します。
自動マージの確認
マージ ツールは、3-way マージ レポートを開く前に、ほとんどの競合のない相違点を自動的にマージします。
すべての自動マージ選択項目を確認して調整できます。たとえば、PilotGain 行をクリックして最初の変更を調べます。この行は、マージ ツールにより、同僚が main ブランチで行った変更が取得されて自動的にマージされています。[ターゲット] ツリーにあるオプション ボタン
を使用して自動選択項目を調整できます。taskBranch からの変更を取得すると、同僚が追加した PilotGain ブロックが削除されます。

競合の解決
競合を解決するには、次の手順に従います。
1. [次へ] ボタンを使用して競合に移動します。自分と同僚が変更したため、StopTime パラメーターが競合しています。[ターゲット] ペインでは、既定では、ツールはブランチ taskBranch
からの変更を選択します。
2. 既定の選択を使用して競合を解決するには、競合を解決済みとしてマークします。[ターゲット] ペインで、[StopTime] 行の競合アイコン
をクリックし、[解決済みとしてマーク] をクリックします。あるいは、[StopTime] 行を右クリックして、[解決済みとしてマーク] を選択します。
代わりに main ブランチからの変更を保持する場合は、main ブランチの
列のオプション ボタン
を選択します。選択すると、ツールにより、自動的に項目が解決済みとしてマークされ、行の色が更新されます。

3. 概要テーブルを調べて、すべての競合が解決されたことを確認します。
この例では、すべての競合が正常に解決されたことが概要テーブルに示されています。

ヒント:
現在のビューですべての競合を解決したのにもかかわらず、概要テーブルのタイトルが [x 件の未解決の変更のうち、y 件にフィルターが適用されています] となっている場合は、フィルターを無効にして、残りの競合を表示して解決する必要があります。適用されているすべてのフィルターをクリアするには、[表示の変更] の横にあるフィルターをクリックします。

対応する必要がある未解決の変更間を移動するには、[次へ] ボタンおよび [前へ] ボタンを使用します。
解決が必要な項目ごとに、ツールでは問題の解決に役立つヒントが示されます。[ターゲット] ペインの行の横に表示されているアイコンをクリックします。

変更を確定する
1. すべてのフィルター処理された変更とフィルター処理されていない変更を解決したら、[確定して閉じます] をクリックします。マージ ツールはレポートおよびモデルを閉じ、targetFile のマージ結果を確定し、ソース管理ツールでその競合を解決済みとしてマークします。
2. 解決済みのモデル ファイルをソース管理にコミットする前に、現在のブランチに対してマージによる変更を比較して最終確認を行います。
[プロジェクト] パネルでモデルを右クリックし、[ソース管理]、[変更を表示] を選択します。
ヒント:
[確定して閉じる] をクリックすると、解決する必要がある競合がまだある場合は、ツールによってプロンプトが表示されます。[続行] をクリックすると、ツールは "Mine" の変更 (この例では "taskBranch") を選択し、未解決の競合をすべて解決します。
