Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

比較レポートからの Simulink モデルのマージ

マージ ツールで次のことを実行できます。

  • 3-way マージを使用してソース管理対象のモデル ファイルにある競合を解決。[競合を表示] を選択して開きます。

  • 2-way マージを使用して任意の 2 つのモデルをマージ。[比較] コンテキスト メニューの項目を選択して開きます。

  • テキスト比較レポートを使用して MATLAB® Function ブロック コードをマージ。

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

プロジェクトまたは現在のフォルダー ブラウザーでソース管理対象の競合するモデル ファイルが存在する場合、右クリックして [競合を表示] を選択します。3-way モデル マージ ツールで競合を解決できます。競合するリビジョンおよびベースの先祖ファイルとローカル ファイルを比較して、どの変更を維持するかを決定します。競合を解決して変更を適用できます。

  1. 3-way マージの例を試すには、Simulink 3-way マージを使用した競合の解決を参照してください。

  2. プロジェクト内で競合するモデル ファイルを見つけ、右クリックして [競合を表示] を選択します。コンテキスト メニューに [競合を表示] が表示されるのは、ファイルがソース管理によって競合としてマークされている場合のみです。

マージ ツールは、解決可能なすべての差分を自動的に解決し、その結果を [Target] ペインに表示します。自動マージの選択を確認し、必要な場合は変更を加えて、残りの競合を解決する方法を指定します。

  1. マージ レポートの列を確認します。

    • 上部にある [Theirs][Base][Mine] の各列は、競合するリビジョン、ユーザーのリビジョン、およびその両方のベースとなる先祖ファイルの差分を示します。

    • 下部の [Target] は、変更をマージした結果を保存するローカル ファイルを示します。マージ ツールによって、マージ可能な差分は既に自動的にマージされています。

  2. 差分を調べるには、[次へ] をクリックするか、[Theirs][Base]、および [Mine] の各列で行をクリックします。

    マージ ツールには 2 つのモデルが表示されます (コンフィギュレーション設定を選択した場合は、2 つのモデルの [コンフィギュレーション パラメーター] ダイアログ ボックスが表示されます)。既定では、[Theirs][Target] のモデルが表示されます。

  3. [マージ] タブの次のツールストリップ ボタンで、表示するモデルを選択します。[最上位モデル] または [最下位モデル]。マージの対象を決定しやすいように、モデルを確認します。

    メモ

    [競合を表示] でマージ ツールを開く場合、[Theirs][Base][Mine] の各モデルは、競合するリビジョンを示す一時ファイルです。これらを確認してマージする方法を決定します。[Target] のモデルは、レポートにおけるマージの結果が含まれた [Mine] のコピーです。

  4. [Target] ペインのボタンをクリックして、各変更について維持するバージョンを選択します。変更、追加、または削除されたノードをマージでき、それぞれのパラメーターもマージできます。マージ ツールは、自動的に解決できなかったすべての差分に対して選択を行います。選択を確認し、必要な場合は変更してください。

    [Conflicts] 列で警告を探します。競合する項目ごとにボタンを選択して、[Theirs][Base][Mine] のいずれかを使用するよう指定します。

    ヒント

    ラインをマージする前にブロックをマージし、遷移をマージする前にステートとジャンクションをマージしてください。その後、マージ ツールは、すべてのラインをブロックに接続しようとします。マージ操作のヒントを参照してください。

  5. 一部の差分は手動でマージしなければなりません。[Target] ペインの競合列で、対処が必要なことを示す手動マージ アイコンを探します。

    手動による変更はエディターで行います。エディターで変更した内容は比較レポートに反映されないため、レポートで単純なマージをすべて完了してから、手動による変更を行ってください。

    エディターを使って競合を解決した後、[Target] ペインでチェック オプションを選択して、ノードを完了としてマークします。

  6. 概要テーブルで、自動マージの数と、解決が必要な残りの競合数を確認します。

    概要テーブルのタブのタイトルを確認して、現在のビューから除外されている変更点がないかをチェックします。[フィルター後の表示] と [すべての表示] のタブ タイトルに、変更の数が表示されます。既定では、機能以外のすべての変更はレポートで非表示になります。識別されたすべての変更を表示するには、アクティブなフィルターをオフにします。

  7. [Target] ファイルでのマージの選択と手動のマージに問題がなければ、[確定して閉じる] をクリックします。この操作でターゲット ファイルにすべてのマージ内容が保存され、競合するファイルがソース管理ツールで解決済みとしてマークされます。

    競合を解決済みとしてマークせずにファイルを保存するには、[確定して閉じる][保存して閉じる] を選択します。

プロジェクト内で変更されたファイルの変更リストの競合を解決する方法の詳細については、競合の解決を参照してください。

外部のソース管理ツールでの 3-way マージの使用

MATLAB の外部のソース管理を使用している場合、3-way マージ (または比較の場合は 2-way マージ) を開くように外部ソース管理ツールをカスタマイズすることができます。

詳細については、MATLAB を比較とマージに使用するための外部ソース管理のカスタマイズを参照してください。

ソース管理を使用せずに 3-way マージを開く

ソース管理を使用していない場合や、マージする 3 つのファイルを選択する場合、関数 slxmlcomp.slMerge を使用して 3-way マージを開くことができます。たとえば、マージするファイルを次のように指定します。

slxmlcomp.slMerge(baseFile, mineFile, theirsFile, targetFile);
3-way マージが開き、baseFilemineFile および theirsFile 内の変更を targetFile にマージすることができます。

2-way モデル マージ

比較レポートから 2 つの Simulink® モデルをマージできます。プロジェクトまたは現在のフォルダー ブラウザーの [比較] コンテキスト メニュー項目で 2-way モデル マージを開きます。ソース管理を使用していて 3-way モデル マージを使って競合を解決する場合は、3-way モデル マージを使用した競合の解決を参照してください。

マージ機能では、Simulink でモデル化した設計の 2 つのバージョンをマージできます。個々のパラメーターやブロック、またはサブシステム全体をマージできます。サブシステム全体がマージ可能なのは、サブシステムが完全に挿入されているか、削除されているサブシステムである場合のみです。

  1. [比較] タブで [マージ モード] をクリックします。レポートの下部に [ターゲット] ペインが表示されます。

  2. 3-way マージと同じワークフローを使用します。ボタンを使用して、ターゲット内で保持する差分を選択します。

    ヒント

    ラインをマージする前にブロックをマージし、遷移をマージする前にステートとジャンクションをマージしてください。マージ操作のヒントを参照してください。

  3. レポートとモデルで結果を確認します。[ファイルの保存] をクリックします。[ファイルの保存] は、一時ターゲット ファイルを比較内の右側のファイルにコピーして、比較を再実行します。

  4. (オプション) すべてのマージ操作を元に戻すには、ファイルを保存せずに [マージを閉じる] をクリックします。

  5. マージによる変更を Simulink エディターで検証します。必要に応じて、ソフトウェアで自動的に接続されなかったラインをすべて接続します。エディターで行った変更は比較レポートに一切反映されません。

マージ操作のヒント

  • レポートの Simulink 部分では、次の順序でモデルをマージします。ターゲット ファイルで次のことを行います。

    1. 維持しないラインを削除します。

    2. 維持しないブロックを削除します。

    3. 維持するブロックを追加します。

    4. 維持するラインを追加します。

    5. 維持するパラメーターを選択します。

    遷移をマージする前にステートとジャンクションをマージしなければなりません。これを行わないと、レポートで接続を行うことができなくなります。

    複数のノードに関わる変更点をマージする方法の例については、Stateflow を含む Simulink モデルの比較とマージを参照してください。

  • 一部のパラメーターはマージができません。この場合、ターゲット モデル内のバージョンを示すラジオ ボタンがターゲット ペインに 1 つだけ表示されます。

  • 名前が同じモデルをマージする場合の詳細については、同じ名前のモデルの比較を参照してください。

MATLAB Function ブロック コードのマージ

  1. MATLAB Function ブロック コードの差分をマージするには、親モデルの比較レポートを作成します。

  2. [マージ モード] ボタンをクリックします。

    これにより、targetFile と呼ばれる 3 番目のファイルが作成されて開かれます。これには、左側のモデルまたは右側のモデルのどちらかの変更が含まれます。

  3. レポートの右側にあるボタンを使用して、ターゲット ファイルに必要な変更を選択します。

  4. [ファイルの保存] ツールストリップ ボタンを使用して、これらの変更を右側のモデルに保存します。

関連するトピック