Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink 3-way マージを使用した競合の解決

この例では、Simulink® 3-way マージを使用して Simulink モデル内の競合を解決する方法を示します。結果ファイル内の Simulink モデルの相違点を表示およびマージできます。

サンプル プロジェクトの設定

サンプル プロジェクトの作業コピーを作成して開きます。MATLAB® により、ファイルがサンプル フォルダーにコピーされ、編集できるようになります。

slcomparisons.examples.simulinkThreeWayMerge;

Simulink モデルの変更と競合

サンプル プロジェクトは Git™ ソース管理下に置かれます。別のユーザーのマスター Git のブランチへの変更を TaskBranch にマージしようとします。この操作により、競合が生じます。

3-way モデル マージ ツールを使用して競合を解決するために、この例では、ローカル ファイル (Mine)、競合するリビジョン (Theirs) およびこれらの 2 つのファイルの共通の先祖 (Base) を調べる方法を示します。

Theirs: 別のユーザーによって、pilot model サブシステムでパイロットの入力コマンドの振幅に明示的な Gain ブロックを使用するように更新されました。このユーザーによってシミュレーション終了時間も更新されました。

Mine: pilot model サブシステムのコンフィギュレーション設定を一部変更しました。

マージ ツールは、競合のない相違点を自動的にマージします。以下の手順に従い、自動マージの選択を確認し、必要な場合は変更を加えて、残りの相違点を解決する方法を指定します。競合を解決した後、解決したモデルをソース管理にコミットします。

Simulink 3-way マージを開く

競合のあるファイルをプロジェクト ファイル ビューで探します。slproject_f14 ファイルでは [Git] 列に赤色の警告記号が表示されますが、これは競合を示します。

1. 競合の詳細レポートを表示するには、slproject_f14 ファイルを右クリックして [競合を表示] をクリックします。

変更点の表示

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

  • [Theirs][Base][Mine] の各ツリーは、競合するリビジョン、ユーザーのリビジョン、およびこれらのベースとなる先祖ファイルの差分を示します。

  • [ターゲット] ツリーは、変更をマージするファイルを示します。これは一時ファイルであり、マージ結果を確定するとプロジェクトにコピーされます。

2. ツリーのいずれかの行をクリックして相違点を調べます。マージ ツールは、たとえば、Simulink エディターや [コンフィギュレーション パラメーター] ダイアログ ボックスなどの、[3-way マージ] ウィンドウの右側のエディターに、各モデルの変更を表示します。

3. [Merge] タブの [強調表示] セクションで、[最上位モデル] ボタンまたは [最下位モデル] ボタンを使用して表示するモデルを選択します。

自動マージの確認

マージ ツールは、最も競合のない相違点を自動的にマージします。

4. PilotGain という行をクリックして [Theirs] ツリー上部で最初の変更を調べます。このノードは自動的にマージされており、[ターゲット] ツリーにあるボタンを使用して自動選択項目を調整できます。必要に応じて、他の自動マージ選択項目を確認します。

競合の解決

ユーザー アクションを必要とする相違点のタイプは 2 つあります。

競合: マージ ツールはこれらの相違点を自動的に解決できず、ターゲット ファイルに必要な設計を選択する必要があります。[ターゲット] ペインで競合列の警告 を探します。

手動マージ: 一部の相違点を Simulink で手動でマージするか、無視しなければなりません。[ターゲット] ペインでは、これらの項目は競合列の鉛筆のアイコン で示されます。

5. StickCommand_rad 行を選択します。この相違点は手動でマージする必要があり、競合列の鉛筆のアイコン で示されます。

Simulink エディターで Pilot という名前のブロックの出力に接続されたラインの名前を StickCommand_rad から Pilot Output に変更することで、targetFile のラインの相違点を解決します。

相違点を解決してから、エディターで変更を保存し、[Conflicts] 列の手動マージ制御を使用して解決された変更をマークします。

エディターで行った変更はマージ レポートに一切反映されません。

6. [次へ] ツールストリップ ボタンを使用して、競合に到達するまで変更を確認および解決します。この StopTime パラメーターは両方のユーザーによって変更され、競合が発生しています。Mine の変更を使用して競合を解決します。[ターゲット] ペインで Mine 列の横にある StopTime ボタンを選択します。

フィルターの変更

既定では、項目の配置変更などの機能以外の変更点はすべてレポートで非表示になります。

7.[マージ] タブの [フィルター] セクションで、フィルターをオンまたはオフにしてこれらの設計のさまざまな変更を調べます。

変更を確定する

8.すべてのフィルター処理された変更とフィルター処理されていない変更を解決したら、[確定して閉じます] をクリックします。マージ ツールはレポートおよびモデルを閉じ、targetFile のマージ結果を確定し、ソース管理ツールでその競合を解決済みとしてマークします。変更をソース管理にコミットし、作業を続行できます。

詳細情報

Simulink モデルの比較

プロジェクトのソース管理

競合の解決

リビジョンの比較

MATLAB を比較とマージに使用するための外部ソース管理のカスタマイズ

関連する例

Simulink モデルの比較とマージ

Stateflow を含む Simulink モデルの比較とマージ