Можно настроить внешние инструменты системы контроля версий, чтобы использовать MATLAB® Инструмент сравнения для diff и слияний. Если вы хотите сравнить файлы MATLAB, такие как live скрипты, MAT, SLX или MDL файлы из вашего инструмента системы контроля версий, то можно настроить инструмент системы контроля версий, чтобы открыть MATLAB Comparison Tool. MATLAB Comparison Tool предоставляет инструменты для слияния MathWorks® файлы и совместимы с популярными системами управления строением программного обеспечения и системы контроля версий. Можно использовать инструмент automerge с Git™ для автоматического объединения ветвей, содержащих изменения в различных подсистемах в том же файле SLX.
Чтобы настроить инструмент системы контроля версий для использования MATLAB в качестве приложения для diff и слияния, необходимо сначала определить полные пути mlDiff
, mlMerge
, и mlAutoMerge
исполняемые файлы, а затем следуйте рекомендуемым шагам для используемого инструмента системы контроля версий.
Чтобы получить необходимые пути к файлам и разрешить внешним инструментам систем контроля версий повторно использовать открытые сеансы работы с MATLAB, запустите эту команду в MATLAB:
comparisons.ExternalSCMLink.setup()
Эта команда устанавливает выбор MATLAB, в разделе Comparison, называемое Allow external source control tools to use open MATLAB sessions for diffs and merges.
Эта команда также отображает пути к файлам для копирования и вставки в настройку инструмента системы контроля версий:
В 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
.
Примечание
Ваши операции diff и merge используют открытые сеансы работы с MATLAB, когда они доступны, и открывают MATLAB только при необходимости. В операциях используется только указанная установка MATLAB.
Чтобы сконфигурировать MATLAB diff и объединить инструменты с Git командной строки:
Выполните эту команду в MATLAB.
comparisons.ExternalSCMLink.setupGitConfig()
Эта команда отображает полные пути mlDiff
, mlMerge
, и 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
Примечание
Вам нужно сделать шаг 1 только один раз для настройки Git.
Сконфигурируйте свой репозиторий, чтобы использовать mlAutoMerge
исполняемый файл. Откройте .gitattributes
файл в вашем репозитории и добавить:
*.slx binary merge=mlAutoMerge
Теперь, когда вы объединяете ветви, которые содержат изменения в различных подсистемах в том же файле SLX, MATLAB обрабатывает слияние автоматически.
Чтобы запустить MATLAB diff и объединить инструменты из Git командной строки, используйте git difftool
и git mergetool
:
Чтобы сравнить две ревизии модели с помощью инструмента MATLAB diff, введите:
git difftool -t mlDiff <revisonID1> <revisionID2> myModel.slx
Если вы не предоставляете идентификаторы ревизий, git difftool
сравнивает рабочую копию с копией репозитория.
Если вы не задаете, какую модель хотите сравнить, command-line Git пройдет через все измененные файлы и спросит вас, хотите ли вы сравнить их один за другим.
Чтобы разрешить конфликт слияния в модели с помощью инструмента слияния MATLAB, введите:
git mergetool -t mlMerge myModel.slx
Если вы не задаете, какую модель хотите объединить, command-line Git пройдет через все файлы и спросит вас, хотите ли вы объединить их один за другим.
SourceTree является интерактивным графическим интерфейсом пользователя, который визуализирует и управляет репозиториями Git для Windows и Mac.
Сконфигурируйте инструменты MATLAB diff и слияния как внешние инструменты SourceTree:
Когда SourceTree открыт, щелкните Tools > Options.
На вкладке 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
Сконфигурируйте свой репозиторий, чтобы автоматизировать изменения в различных подсистемах в том же файле SLX с помощью mlAutoMerge
исполняемый файл:
Откройте глобальную .gitconfig
файл и добавить:
[merge "mlAutoMerge"] driver = \"C:/Program Files/MATLAB/R2020b/bin/win64/mlAutoMerge.exe\" %O %A %B %A
Откройте .gitattributes
файл в вашем репозитории и добавить:
*.slx binary merge=mlAutoMerge
Совет
Настройте полный путь к mlDiff
, mlMerge
, и mlAutoMerge
исполняемые файлы, соответствующие как установке MATLAB, так и используемой операционной системе. Для получения дополнительной информации смотрите Поиск полных путей для MATLAB Diff, Merge и AutoMerge.
Чтобы использовать инструмент MATLAB diff из SourceTree, щелкните правой кнопкой мыши измененный файл под Unstaged files и выберите External Diff.
Чтобы использовать инструмент слияния MATLAB, когда SourceTree обнаруживает конфликт слияния, выберите Uncommitted changes ветвь, щелкните правой кнопкой мыши измененный файл и выберите Resolve Conflicts > Launch External Merge Tool.
С помощью TortoiseSVN можно настроить инструменты diff и слияния на основе расширения файла. Например, чтобы использовать инструменты MATLAB diff и merge для файлов SLX:
Щелкните правой кнопкой мыши в любом окне обозревателя файлов и выберите TortoiseSVN > Settings, чтобы открыть настройки TortoiseSVN.
На Settings боковой панели выберите Diff Viewer. Щелкните Advanced, чтобы задать приложение diff на основе расширений файлов.
Нажмите Add и заполните поля расширением и mlDiff
исполняемый путь:
Filename, extension or mime-type: .slx External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe" %base %mine
Нажмите OK и повторите те же шаги, чтобы добавить другое расширение файла.
На Settings боковой панели выберите Diff Viewer Merge Tool. Щелкните Advanced, чтобы задать приложение слияния на основе расширений файлов.
Нажмите Add и заполните поля расширением и mlMerge
исполняемый путь:
Filename, extension or mime-type: .slx External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe" %base %mine %theirs %merged
Нажмите OK и повторите те же шаги, чтобы добавить другое расширение файла.
Теперь можно использовать средства MATLAB для diff и объединять так же, как можно использовать приложения TortoiseSVN по умолчанию diff и merge.
Примечание
Автоматизация двоичных файлов с SVN, таких как файлы SLX, не поддерживается.
С Perforce® P4V можно настроить инструменты diff и merge на основе расширения файла. Чтобы использовать инструменты MATLAB diff и merge для файлов SLX, например:
В Perforce щелкните Edit > Preferences.
На Preferences боковой панели выберите Diff. В разделе Specify diff application by extension (overrides default) нажмите Add.
В диалоговом окне Add File Type введите следующую информацию:
Extension: .slx
Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe
Arguments: %1 %2
Нажмите Save.
На Preferences боковой панели выберите Merge. В разделе Specify merge application by extension (overrides default) нажмите Add.
В диалоговом окне Add File Type введите следующую информацию:
Extension: .slx
Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe
Arguments: %b %2 %1 %r
Нажмите Save и повторите шаги для других расширений файлов.
Совет
Настройте полный путь к mlDiff
и mlMerge
исполняемые файлы, соответствующие как установке MATLAB, так и используемой операционной системе. Для получения дополнительной информации смотрите Поиск полных путей для MATLAB Diff, Merge и AutoMerge.
Теперь можно использовать средства MATLAB для diff и слияния так же, как можно использовать приложения Perforce по умолчанию для diff и слияния.