Можно настроить внешние инструменты управления версиями, чтобы использовать MATLAB ® Comparison Tool для diff и merge. При необходимости сравнения файлов MATLAB, таких как интерактивные сценарии, MAT, SLX или MDL, можно настроить средство управления версиями на открытие средства сравнения MATLAB. MATLAB Comparison Tool предоставляет инструменты для объединения файлов MathWorks ® и совместим с популярными системами управления конфигурацией программного обеспечения и управления версиями. Инструмент automerge с Git™ можно использовать для автоматического объединения ветвей, содержащих изменения в различных подсистемах в одном SLX-файле.
Чтобы настроить средство управления версиями на использование MATLAB в качестве приложения для diff и merge, необходимо сначала определить полные пути mlDiff, mlMerge, и mlAutoMerge исполняемые файлы, а затем выполните рекомендуемые шаги для используемого средства управления версиями.
Чтобы получить необходимые пути к файлам и включить внешние средства управления версиями для повторного использования открытых сессий MATLAB, выполните следующую команду в MATLAB:
comparisons.ExternalSCMLink.setup()
Эта команда задает настройку MATLAB в разделе Сравнение (Comparison), называемую Разрешить средствам управления внешними версиями использовать открытые сессии 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.
Примечание
Операции diff и merge используют открытые сессии MATLAB, когда они доступны, и только открытые сессии MATLAB, когда это необходимо. Операции используют только указанную установку MATLAB.
Для настройки инструментов MATLAB diff и merge с помощью командной строки 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 и merge из Git командной строки, используйте git difftool и git mergetool:
Чтобы сравнить две ревизии модели с помощью инструмента MATLAB diff, введите:
git difftool -t mlDiff <revisonID1> <revisionID2> myModel.slx
Если идентификаторы версий не предоставляются, git difftool сравнивает рабочую копию с копией репозитория.
Если не указать модель, которую требуется сравнить, Git в командной строке просматривает все измененные файлы и запрашивает, нужно ли сравнивать их один за другим.
Чтобы разрешить конфликт слияния в модели с помощью инструмента объединения MATLAB, введите:
git mergetool -t mlMerge myModel.slx
Если не указать модель, которую требуется объединить, в командной строке GIT будет проходить через все файлы и спрашивать, нужно ли объединять их один за другим.
SourceTree - это интерактивный графический интерфейс пользователя, который визуализирует репозитории Git для Windows и Mac и управляет ими.
Настройте инструменты MATLAB diff и merge как внешние инструменты SourceTree:
Открыв SourceTree, щелкните Инструменты > Параметры.
На вкладке Различия (Diff) в разделе Внешние различия (External Diff/Merge) заполните поля следующей информацией:
External Diff tool:CustomDiff Command: C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe Arguments: $LOCAL $REMOTE Merge tool:CustomMerge 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 обнаруживает конфликт слияния, выберите ветвь Незафиксированные изменения, щелкните правой кнопкой мыши измененный файл и выберите команду Разрешить конфликты > Запустить инструмент внешнего слияния.
С помощью TortoureSVN можно настроить инструменты для diff и merge на основе расширения файла. Например, для использования инструментов MATLAB diff и merge для SLX-файлов:
Щелкните правой кнопкой мыши в любом окне проводника и выберите TortoitySVN > Settings, чтобы открыть настройки TortoitySVN.
На боковой панели «Параметры» выберите «Просмотр различий». Нажмите кнопку Дополнительно, чтобы указать приложение diff на основе расширений файлов.
Нажмите Добавить и заполните поля расширением и mlDiff путь к исполняемому файлу:
Filename, extension or mime-type: .slx External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe" %base %mine
Нажмите кнопку ОК и повторите те же действия, чтобы добавить другое расширение файла.
На боковой панели «Параметры» выберите «Diff ViewerMerge Tool». Нажмите кнопку «Дополнительно», чтобы указать приложение слияния на основе расширений файлов.
Нажмите Добавить и заполните поля расширением и mlMerge путь к исполняемому файлу:
Filename, extension or mime-type: .slx External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe" %base %mine %theirs %merged
Нажмите кнопку ОК и повторите те же действия, чтобы добавить другое расширение файла.
Теперь вы можете использовать инструменты MATLAB для diff и merge так же, как вы бы использовать TortoureSVN по умолчанию diff и merge приложений.
Примечание
Автоматизация двоичных файлов с SVN, например SLX-файлов, не поддерживается.
С помощью Perforce ® P4V можно настроить инструменты diff и merge на основе расширения файла. Чтобы использовать инструменты MATLAB diff и merge для SLX-файлов, например:
В окне «Перфорация» выберите «Редактирование» > «Установки».
На боковой панели «Установки» выберите «Различие». В разделе «Указать приложение diff по расширению» (переопределение по умолчанию) нажмите кнопку «Добавить».
В диалоговом окне «Добавить тип файла» введите следующую информацию:
Extension: .slx
Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe
Arguments: %1 %2
Нажмите кнопку Сохранить.
На боковой панели «Установки» выберите «Объединить». В разделе Указать приложение объединения по расширению (переопределение по умолчанию) нажмите кнопку Добавить.
В диалоговом окне «Добавить тип файла» введите следующую информацию:
Extension: .slx
Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe
Arguments: %b %2 %1 %rНажмите кнопку Сохранить и повторите шаги для других расширений файлов.
Совет
Настройка полного пути mlDiff и mlMerge исполняемые файлы соответствуют как установке MATLAB, так и используемой операционной системе. Дополнительные сведения см. в разделе Поиск полных путей для MATLAB Diff, Merge и AutoMerge.
Теперь можно использовать инструменты MATLAB для diff и объединения таким же образом, как приложения по умолчанию Perforce diff и merge.