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

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

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

Поиск полных путей для MATLAB Diff, Merge и 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 и merge используют открытые сеансы работы с MATLAB, когда они доступны, и открывают MATLAB только при необходимости. В операциях используется только указанная установка MATLAB.

Интегрирование с Git

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

Чтобы сконфигурировать MATLAB diff и объединить инструменты с Git командной строки:

  1. Выполните эту команду в 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.

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

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

  1. Сконфигурируйте инструменты MATLAB diff и слияния как внешние инструменты 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 $REMOTE
      Merge tool: Custom
      Merge Command: C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe
      Arguments: $BASE $LOCAL $REMOTE $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, так и используемой операционной системе. Для получения дополнительной информации смотрите Поиск полных путей для MATLAB Diff, Merge и AutoMerge.

Чтобы использовать инструмент MATLAB diff из SourceTree, щелкните правой кнопкой мыши измененный файл под Unstaged files и выберите External Diff.

Чтобы использовать инструмент слияния MATLAB, когда SourceTree обнаруживает конфликт слияния, выберите Uncommitted changes ветвь, щелкните правой кнопкой мыши измененный файл и выберите Resolve Conflicts > Launch External Merge Tool.

Интегрирование с SVN

TortoiseSVN

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

  1. Щелкните правой кнопкой мыши в любом окне обозревателя файлов и выберите TortoiseSVN > Settings, чтобы открыть настройки TortoiseSVN.

  2. На Settings боковой панели выберите Diff Viewer. Щелкните Advanced, чтобы задать приложение diff на основе расширений файлов.

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

Примечание

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

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

Перфорс- P4V

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

  1. В Perforce щелкните 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, так и используемой операционной системе. Для получения дополнительной информации смотрите Поиск полных путей для MATLAB Diff, Merge и AutoMerge.

Теперь можно использовать средства MATLAB для diff и слияния так же, как можно использовать приложения Perforce по умолчанию для diff и слияния.

Похожие темы