Можно настроить внешние инструменты системы контроля версий, чтобы использовать Инструмент MATLAB® Comparison для diff и слияния. Если вы хотите сравнить файлы MATLAB, такие как live скрипты, MAT, SLX или файлы MDL от вашего инструмента системы контроля версий, то можно сконфигурировать инструмент системы контроля версий, чтобы открыть Инструмент Сравнения MATLAB. Инструмент Сравнения MATLAB обеспечивает инструменты для слияния файлов MathWorks® и совместим с популярным управлением конфигурированием ПО и системами управления версиями. Можно использовать инструмент автослияния с 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 и использование операций слияния открывают сеансы работы с MATLAB, когда доступно, и только открывают MATLAB при необходимости. Операции только используют заданную установку MATLAB.
Сконфигурировать diff MATLAB и инструменты слияния с 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 обрабатывает слияние автоматически.
Чтобы запустить diff MATLAB и инструменты слияния от Git командной строки, используйте git difftool
и git mergetool
:
Чтобы сравнить две версии модели с помощью инструмента diff MATLAB, введите:
git difftool -t mlDiff <revisonID1> <revisionID2> myModel.slx
Если вы не обеспечиваете идентификаторы версии, git difftool
сравнивает рабочую копию с копией репозитория.
Если вы не зададите, какую модель вы хотите сравнить, Git командной строки пройдет все модифицированные файлы и спросит вас, если вы захотите сравнить их один за другим.
Чтобы разрешить конфликт слияния в модели с помощью инструмента слияния MATLAB, введите:
git mergetool -t mlMerge myModel.slx
Если вы не зададите, какую модель вы хотите объединить, Git командной строки пройдет все файлы и спросит вас, если вы захотите объединить их один за другим.
SourceTree является интерактивным инструментом GUI, который визуализирует и управляет репозиториями Git для Windows и Mac.
Сконфигурируйте diff MATLAB и объедините инструменты как 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 и с операционной системой вы используете. Для получения дополнительной информации смотрите Нахождение Полных путей для Diff MATLAB, Слияния и AutoMerge.
Чтобы использовать инструмент diff MATLAB из SourceTree, щелкните правой кнопкой по модифицированному файлу под Unstaged files и выберите External Diff.
Чтобы использовать MATLAB объединяют инструмент, когда SourceTree обнаруживает конфликт слияния, выберите ветвь Uncommitted changes, щелкните правой кнопкой по модифицированному файлу и выберите Resolve Conflicts> Launch External Merge Tool.
С TortoiseSVN можно настроить diff и объединить инструменты на основе расширения файла. Например, чтобы использовать diff MATLAB и инструменты слияния для файлов SLX:
Щелкните правой кнопкой по любому окну файлового менеджера и выберите TortoiseSVN> Settings, чтобы открыть настройки TortoiseSVN.
На боковой панели Settings выберите Diff Viewer. Нажмите Advanced, чтобы задать различное приложение на основе расширений файла.
Нажмите 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 и объединить тот же способ, которым вы использовали бы diff значения по умолчанию TortoiseSVN и приложения слияния.
Примечание
Автообъединение двоичных файлов с SVN, таких как файлы SLX, не поддерживается.
С Perforce® P4V можно настроить diff и объединить инструменты на основе расширения файла. Использовать diff MATLAB и инструменты слияния для файлов SLX, например:
В По необходимости, нажмите 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 и с операционной системой вы используете. Для получения дополнительной информации смотрите Нахождение Полных путей для Diff MATLAB, Слияния и AutoMerge.
Можно теперь использовать средства MATLAB для diff и объединить тот же способ, которым вы использовали бы По необходимости diff по умолчанию и приложения слияния.