比較とマージに MATLAB を使用するための外部ソース管理のカスタマイズ
比較とマージに MATLAB® 比較ツールを使用するために外部のソース管理ツールをカスタマイズできます。MLX ファイル、MAT ファイル、SLX ファイル、MDL ファイルなどの MATLAB ファイルをソース管理ツールから比較する場合、MATLAB 比較ツールを開くようにソース管理ツールを構成します。サポートされているファイルのより詳細なリストについては、visdiff
を参照してください。MATLAB 比較ツールには、MathWorks® ファイルをマージするためのツールが用意されており、一般的なソフトウェア構成管理システムやバージョン管理システムと互換性があります。この自動マージツールを Git™ と共に使用して、同じ SLX ファイル、SLMX ファイル、SLREQX ファイル、SLTX ファイル内に異なるサブシステムの変更を含むブランチを自動的にマージできます。詳細については、ロカールおよび CI パイプラインでのモデルの自動マージ (Simulink)を参照してください。
MATLAB を比較とマージ用のアプリケーションとして使用するようにソース管理ツールを設定するには、まず mlDiff
、mlMerge
および mlAutoMerge
の実行可能ファイルの絶対パスを特定してから、使用しているソース管理ツールの推奨手順に従わなければなりません。
MATLAB による比較、マージおよび自動マージのための絶対パスの検出
実行可能ファイル mlDiff
、mlMerge
および mlAutoMerge
の必要なファイル パスを取得するには、MATLAB で次のコマンドを実行します。
comparisons.ExternalSCMLink.setup()
このコマンドでは、コピーしてソース管理ツール設定に貼り付けられるファイル パスが出力されます。Windows® でのパスの例を以下に示します。
Diff: C:\Program Files\MATLAB\R2025a\bin\win64\mlDiff.bat
Merge: C:\Program Files\MATLAB\R2025a\bin\win64\mlMerge.bat
AutoMerge: C:\Program Files\MATLAB\R2025a\bin\win64\mlAutoMerge.bat
メモ
比較とマージの操作では、利用できる場合は開いている MATLAB セッションを使用し、必要なときにのみ MATLAB を開きます。この操作では、指定された MATLAB インストールのみを使用します。
Git との統合
コマンド ライン
コマンド ライン Git を使用して MATLAB の比較ツールとマージ ツールを設定するには、次を行います。
MATLAB で以下のコマンドを実行します。
comparisons.ExternalSCMLink.setupGitConfig()
このコマンドでは、実行可能ファイル
mlDiff
、mlMerge
およびmlAutoMerge
の絶対パスが表示されます。また、グローバル.gitconfig
ファイルも事前設定されます。以下に例を示します。[difftool "mlDiff"] cmd = \"C:/Program Files/MATLAB/R20xxb/bin/win64/mlDiff.bat\" $LOCAL $REMOTE [mergetool "mlMerge"] cmd = \"C:/Program Files/MATLAB/R20xxb/bin/win64/mlMerge.bat\" $BASE $LOCAL $REMOTE $MERGED [merge "mlAutoMerge"] driver = \"C:/Program Files/MATLAB/R20xb/bin/win64/mlAutoMerge.bat\" %O %A %B %A
メモ
Git を設定するには、手順 1 を 1 回のみ実行する必要があります。
実行可能ファイル
mlAutoMerge
を使用するようにリポジトリを構成します。リポジトリで.gitattributes
ファイルを開いて、次を追加します。*.slx binary merge=mlAutoMerge
これで、同じ SLX ファイル内に異なるサブシステムの変更を含むブランチをマージするときに、MATLAB がマージを自動処理します。
MATLAB の比較ツールとマージ ツールをコマンド ライン Git から実行するには、git difftool
と git 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 ツールです。
MATLAB の比較ツールとマージ ツールを SourceTree の外部ツールとして設定するには、次を行います。
SourceTree を開いた状態で、[Tools] 、 [Options] をクリックします。
[Diff] タブの [External Diff / Merge] の下で、各フィールドに次の情報を入力します。
External Diff tool:
Custom
Diff Command: C:\Program Files\MATLAB\R20xxb\bin\win64\mlDiff.bat Arguments: $LOCAL $REMOTE Merge tool:Custom
Merge Command: C:\Program Files\MATLAB\R20xxb\bin\win64\mlMerge.bat Arguments: $BASE $LOCAL $REMOTE $MERGED
mlAutoMerge
実行可能ファイルを使用して、同じ SLX ファイル内にある異なるサブシステムの変更を自動マージするようにリポジトリを構成するには、次を行います。グローバル
.gitconfig
ファイルを開いて、次を追加します。[merge "mlAutoMerge"] driver = \"C:/Program Files/MATLAB/R20xxb/bin/win64/mlAutoMerge.bat\" %O %A %B %A
リポジトリで
.gitattributes
ファイルを開いて、次を追加します。*.slx binary merge=mlAutoMerge
ヒント
使用している MATLAB インストールとオペレーティング システムの両方に合わせて、mlDiff
、mlMerge
および mlAutoMerge
の実行可能ファイルの絶対パスをカスタマイズします。詳細については、MATLAB による比較、マージおよび自動マージのための絶対パスの検出を参照してください。
MATLAB 比較ツールを SourceTree 内から使用するには、[Unstaged files] の下で変更済みファイルを右クリックして [External Diff] を選択します。
SourceTree がマージ競合を検出したときに MATLAB マージ ツールを使用するには、[Uncommitted changes] ブランチを選択し、変更済みファイルを右クリックして、[Resolve Conflicts] 、 [Launch External Merge Tool] を選択します。
SVN との統合
TortoiseSVN
TortoiseSVN を使用すると、比較ツールとマージ ツールをファイル拡張子に基づいてカスタマイズできます。たとえば、SLX ファイルに対して MATLAB の比較ツールとマージ ツールを使用するには、次を行います。
任意のファイル エクスプローラーウィンドウを右クリックし、[TortoiseSVN] 、 [Settings] を選択して TortoiseSVN の設定を開きます。
[Settings] サイドバーで、[Diff Viewer] を選択します。[Advanced] をクリックして、ファイル拡張子に基づいて比較アプリケーションを指定します。
[Add] をクリックし、フィールドに拡張子と
mlDiff
実行可能ファイルのパスを入力します。Filename, extension or mime-type: .slx External Program: "C:\Program Files\MATLAB\R20xxb\bin\win64\mlDiff.bat" %base %mine
[OK] をクリックし、同じ手順を繰り返して別のファイル拡張子を追加します。
[Settings] サイドバーで、[Diff Viewer]、[Merge Tool] を選択します。[Advanced] をクリックして、ファイル拡張子に基づいてマージ アプリケーションを指定します。
[Add] をクリックし、フィールドに拡張子と
mlMerge
実行可能ファイルのパスを入力します。Filename, extension or mime-type: .slx External Program: "C:\Program Files\MATLAB\R20xxb\bin\win64\mlMerge.bat" %base %mine %theirs %merged
[OK] をクリックし、同じ手順を繰り返して別のファイル拡張子を追加します。
これで、MATLAB の比較ツールとマージ ツールを、TortoiseSVN の既定の比較アプリケーションとマージ アプリケーションと同様に使用できます。
メモ
SVN では、SLX ファイルなどのバイナリ ファイルを自動マージすることはサポートされていません。
その他のソース管理ツールとの統合
Perforce P4V
Perforce® P4V を使用すると、比較ツールとマージ ツールをファイル拡張子に基づいてカスタマイズできます。たとえば、SLX ファイルに対して MATLAB の比較ツールとマージ ツールを使用するには、次を行います。
Perforce で、[Edit] 、 [Preferences] をクリックします。
[Preferences] サイドバーで、[Diff] を選択します。[Specify diff application by extension (overrides default)] の下で、[Add] をクリックします。
[Add File Type] ダイアログ ボックスに、次の情報を入力します。
Extension:
.slx
Application: C:\Program Files\MATLAB\R20xxb\bin\win64\mlDiff.bat Arguments: %1 %2[Save] をクリックします。
[Preferences] サイドバーで、[Merge] を選択します。[Specify merge application by extension (overrides default)] の下で、[Add] をクリックします。
[Add File Type] ダイアログ ボックスに、次の情報を入力します。
Extension:
.slx
Application: C:\Program Files\MATLAB\R20xxb\bin\win64\mlMerge.bat Arguments: %b %2 %1 %r[Save] をクリックし、他のファイル拡張子に関して手順を繰り返します。
ヒント
mlDiff
および mlMerge
の実行可能ファイルの絶対パスを、使用しているMATLAB インストールとオペレーティング システムの両方に一致するようにカスタマイズします。詳細については、MATLAB による比較、マージおよび自動マージのための絶対パスの検出を参照してください。
これで、MATLAB の比較ツールとマージ ツールを、Perforce の既定の比較アプリケーションとマージ アプリケーションと同様に使用できます。
参考
トピック
- ファイルやフォルダーの比較とファイルのマージ
- ロカールおよび CI パイプラインでのモデルの自動マージ (Simulink)
- Configure Git Environment to Merge Requirement and Link Set Files (Requirements Toolbox)
- MAT ファイルの比較とマージ
- 比較レポートでのモデル変更の移植または復元 (Simulink)