Настройка внешней системы контроля версий, чтобы использовать MATLAB для Diff и слияния

Можно настроить внешние инструменты системы контроля версий, чтобы использовать Инструмент MATLAB® Comparison для diff и слияния. Если вы хотите сравнить файлы MATLAB, такие как live скрипты, MAT, SLX или файлы MDL от вашего инструмента системы контроля версий, то можно сконфигурировать инструмент системы контроля версий, чтобы открыть Инструмент Сравнения MATLAB. Инструмент Сравнения MATLAB обеспечивает инструменты для слияния файлов MathWorks® и совместим с популярным управлением конфигурированием ПО и системами управления версиями. Можно использовать инструмент автослияния с Git™, чтобы автоматически объединить ветви, которые содержат изменения в различных подсистемах в том же файле SLX.

Чтобы настроить ваш инструмент системы контроля версий, чтобы использовать MATLAB в качестве приложения для diff и слияния, необходимо сначала определить полные пути mlDiff, mlMerge, и mlAutoMerge исполняемые файлы, и затем выполняют рекомендуемые шаги для инструмента системы контроля версий, который вы используете.

Нахождение полных путей для Diff MATLAB, слияния и AutoMerge

Чтобы получить необходимые пути к файлам и позволить внешним инструментам системы контроля версий снова использовать открытые сеансы работы с 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.

Интеграция с Git

Командная строка

Сконфигурировать diff MATLAB и инструменты слияния с Git командной строки:

  1. Запустите эту команду в MATLAB.

    comparisons.ExternalSCMLink.setupGitConfig()

    Эта команда отображает полные пути mlDiff, mlMerge, и mlAutoMerge исполняемые файлы. Это также автоматически заполняет глобальный .gitconfig файл. Например:

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

    Примечание

    Необходимо сделать шаг 1 только однажды для настройки Git.

  2. Сконфигурируйте свой репозиторий, чтобы использовать 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

SourceTree является интерактивным инструментом GUI, который визуализирует и управляет репозиториями Git для Windows и Mac.

  1. Сконфигурируйте diff 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 $PWD/$REMOTE
      Merge tool: Custom
      Merge Command: C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe
      Arguments: $PWD/$BASE $PWD/$LOCAL $PWD/$REMOTE $PWD/$MERGED

  2. Сконфигурируйте свой репозиторий, чтобы автообъединить изменения в различных подсистемах в том же файле SLX с помощью mlAutoMerge исполняемый файл:

    1. Откройте глобальный .gitconfig файл и добавляет:

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

    2. Откройте .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.

Интеграция с SVN

TortoiseSVN

С TortoiseSVN можно настроить diff и объединить инструменты на основе расширения файла. Например, чтобы использовать diff MATLAB и инструменты слияния для файлов SLX:

  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 для diff и объединить тот же способ, которым вы использовали бы diff значения по умолчанию TortoiseSVN и приложения слияния.

Примечание

Автообъединение двоичных файлов с SVN, таких как файлы SLX, не поддерживается.

Интеграция с другими инструментами системы контроля версий

По необходимости P4V

С Perforce® P4V можно настроить diff и объединить инструменты на основе расширения файла. Использовать diff MATLAB и инструменты слияния для файлов SLX, например:

  1. В По необходимости, нажмите 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. Нажмите Save.

  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 и с операционной системой вы используете. Для получения дополнительной информации смотрите Нахождение Полных путей для Diff MATLAB, Слияния и AutoMerge.

Можно теперь использовать средства MATLAB для diff и объединить тот же способ, которым вы использовали бы По необходимости diff по умолчанию и приложения слияния.

Похожие темы