Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

MATLAB® 比較ツールを比較とマージに使用するように、外部ソース管理ツールをカスタマイズできます。ライブ スクリプト、MAT ファイル、SLX ファイル、MDL ファイルなどの MATLAB ファイルをソース管理ツールから比較する場合は、MATLAB 比較ツールが開くようにソース管理ツールを構成できます。MATLAB 比較ツールには、MathWorks® ファイルをマージするためのツールが用意されており、一般的なソフトウェア構成管理システムやバージョン管理システムと互換性があります。この自動マージ ツールを Git™ と共に使用して、同じ SLX ファイル内に異なるサブシステムの変更を含むブランチを自動的にマージできます。

MATLAB を比較とマージ用のアプリケーションとして使用するようにソース管理ツールを設定するには、まず mlDiffmlMerge および mlAutoMerge の実行可能ファイルの絶対パスを特定してから、使用しているソース管理ツールの推奨手順に従わなければなりません。

MATLAB による比較、マージおよび自動マージのための絶対パスの検出

必要なファイル パスを取得して、開いている MATLAB セッションを外部のソース管理ツールが再利用できるようにするには、MATLAB で次のコマンドを実行します。

comparisons.ExternalSCMLink.setup()

このコマンドは、[比較] の下にある [比較とマージのために、開いている MATLAB セッションの、外部ソース管理ツールによる使用を許可する] という MATLAB 基本設定を設定します。

このコマンドでは、コピーしてソース管理ツール設定に貼り付けられるファイル パスも表示されます。

  • Windows® では、次の手順を実行します。

    Diff: matlabroot\bin\win64\mlDiff.exe
    Merge: matlabroot\bin\win64\mlMerge.exe
    AutoMerge: matlabroot\bin\win64\mlAutoMerge.exe
  • Linux® では、次のようにします。

    Diff: matlabroot/bin/glnxa64/mlDiff
    Merge: matlabroot/bin/glnxa64/mlMerge
    AutoMerge: matlabroot/bin/glnxa64/mlAutoMerge

  • Mac では、次のようにします。

    Diff: matlabroot/bin/maci64/mlDiff
    Merge: matlabroot/bin/maci64/mlMerge
    AutoMerge: matlabroot/bin/maci64/mlAutoMerge

matlabroot はインストール場所の絶対パスに置き換えます。たとえば、C:\Program Files\MATLAB\R2020b となります。

メモ

比較とマージの操作では、利用できる場合は開いている MATLAB セッションを使用し、必要なときにのみ MATLAB を開きます。この操作では、指定された MATLAB インストールのみを使用します。

Git との統合

コマンド ライン

コマンド ライン Git を使用して MATLAB の比較ツールとマージ ツールを設定するには、次を行います。

  1. MATLAB で以下のコマンドを実行します。

    comparisons.ExternalSCMLink.setupGitConfig()

    このコマンドでは、実行可能ファイル mlDiffmlMerge および mlAutoMerge の絶対パスが表示されます。また、グローバル .gitconfig ファイルも事前設定されます。以下に例を示します。

    [difftool "mlDiff"]
       cmd = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlDiff.exe\" $LOCAL $REMOTE
    [mergetool "mlMerge"]
       cmd = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlMerge.exe\" $BASE $LOCAL $REMOTE $MERGED
    [merge "mlAutoMerge"]
       driver = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlAutoMerge.exe\" %O %A %B %A

    メモ

    Git を設定するには、手順 1 を 1 回のみ実行する必要があります。

  2. 実行可能ファイル mlAutoMerge を使用するようにリポジトリを構成します。リポジトリで .gitattributes ファイルを開いて、次を追加します。

    *.slx binary merge=mlAutoMerge

    これで、同じ SLX ファイル内に異なるサブシステムの変更を含むブランチをマージするときに、MATLAB がマージを自動処理します。

MATLAB の比較ツールとマージ ツールをコマンド ライン Git から実行するには、git difftoolgit mergetool を使用します。

  • MATLAB 比較ツールを使用してモデルの 2 つのリビジョンを比較するには、次を入力します。

    git difftool -t mlDiff <revisonID1> <revisionID2> myModel.slx

    リビジョン ID を指定しない場合、git difftool は、作業コピーをリポジトリ コピーと比較します。

    比較対象のモデルを指定しない場合、コマンド ライン Git はすべての変更済みファイルについて、1 つずつ比較するかどうかを尋ねます。

  • MATLAB マージ ツールを使用してモデル内のマージ競合を解決するには、次を入力します。

    git mergetool -t mlMerge myModel.slx

    マージ対象のモデルを指定しない場合、コマンド ライン Git はすべてのファイルについて、1 つずつマージするかどうかを尋ねます。

SourceTree

SourceTree は、Windows および Mac 用の Git リポジトリを可視化して管理する対話型の GUI ツールです。

  1. MATLAB の比較ツールとマージ ツールを SourceTree の外部ツールとして設定するには、次を行います。

    1. SourceTree を開いた状態で、[Tools][Options] をクリックします。

    2. [Diff] タブの [External Diff / Merge] の下で、各フィールドに次の情報を入力します。

      External Diff tool: Custom
      Diff Command: C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe
      Arguments: $LOCAL $REMOTE
      Merge tool: Custom
      Merge Command: C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe
      Arguments: $BASE $LOCAL $REMOTE $MERGED

  2. mlAutoMerge 実行可能ファイルを使用して、同じ SLX ファイル内にある異なるサブシステムの変更を自動マージするようにリポジトリを構成するには、次を行います。

    1. グローバル .gitconfig ファイルを開いて、次を追加します。

      [merge "mlAutoMerge"]
         driver = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlAutoMerge.exe\" %O %A %B %A

    2. リポジトリで .gitattributes ファイルを開いて、次を追加します。

      *.slx binary merge=mlAutoMerge

ヒント

mlDiffmlMerge、および mlAutoMerge の実行可能ファイルの絶対パスを、使用している MATLAB インストールとオペレーティング システムの両方に一致するようにカスタマイズします。詳細については、MATLAB による比較、マージおよび自動マージのための絶対パスの検出を参照してください。

MATLAB 比較ツールを SourceTree 内から使用するには、[Unstaged files] の下で変更済みファイルを右クリックして [External Diff] を選択します。

SourceTree がマージ競合を検出したときに MATLAB マージ ツールを使用するには、[Uncommitted changes] ブランチを選択し、変更済みファイルを右クリックして、[Resolve Conflicts][Launch External Merge Tool] を選択します。

SVN との統合

TortoiseSVN

TortoiseSVN を使用すると、比較ツールとマージ ツールをファイル拡張子に基づいてカスタマイズできます。たとえば、SLX ファイルに対して MATLAB の比較ツールとマージ ツールを使用するには、次を行います。

  1. 任意のファイル エクスプローラー ウィンドウを右クリックし、[TortoiseSVN][Settings] を選択して TortoiseSVN の設定を開きます。

  2. [Settings] サイドバーで、[Diff Viewer] を選択します。[Advanced] をクリックして、ファイル拡張子に基づいて比較アプリケーションを指定します。

  3. [Add] をクリックし、フィールドに拡張子と mlDiff 実行可能ファイルのパスを入力します。

    Filename, extension or mime-type: .slx
    External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe" %base %mine
  4. [OK] をクリックし、同じ手順を繰り返して別のファイル拡張子を追加します。

  5. [Settings] サイドバーで、[Diff Viewer][Merge Tool] を選択します。[Advanced] をクリックして、ファイル拡張子に基づいてマージ アプリケーションを指定します。

  6. [Add] をクリックし、フィールドに拡張子と mlMerge 実行可能ファイルのパスを入力します。

    Filename, extension or mime-type: .slx
    External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe" %base %mine %theirs %merged
  7. [OK] をクリックし、同じ手順を繰り返して別のファイル拡張子を追加します。

これで、MATLAB の比較ツールとマージ ツールを、TortoiseSVN の既定の比較アプリケーションとマージ アプリケーションと同様に使用できます。

メモ

SVN を使用して SLX ファイルなどのバイナリ ファイルを自動マージすることはサポートされていません。

その他のソース管理ツールとの統合

Perforce P4V

Perforce® P4V を使用すると、比較ツールとマージ ツールをファイル拡張子に基づいてカスタマイズできます。たとえば、SLX ファイルに対して MATLAB の比較ツールとマージ ツールを使用するには、次を行います。

  1. Perforce で、[Edit][Preferences] をクリックします。

  2. [Preferences] サイドバーで、[Diff] を選択します。[Specify diff application by extension (overrides default)] の下で、[Add] をクリックします。

  3. [Add File Type] ダイアログ ボックスに、次の情報を入力します。

    Extension: .slx
    Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe
    Arguments: %1 %2
    

  4. [保存] をクリックします。

  5. [Preferences] サイドバーで、[Merge] を選択します。[Specify merge application by extension (overrides default)] の下で、[Add] をクリックします。

  6. [Add File Type] ダイアログ ボックスに、次の情報を入力します。

    Extension: .slx
    Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe
    Arguments: %b %2 %1 %r

  7. [Save] をクリックし、他のファイル拡張子に関して手順を繰り返します。

ヒント

mlDiff および mlMerge の実行可能ファイルの絶対パスを、使用しているMATLAB インストールとオペレーティング システムの両方に一致するようにカスタマイズします。詳細については、MATLAB による比較、マージおよび自動マージのための絶対パスの検出を参照してください。

これで、MATLAB の比較ツールとマージ ツールを、Perforce の既定の比較アプリケーションとマージ アプリケーションと同様に使用できます。

関連するトピック