exponenta event banner

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

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

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

Поиск полных путей для MATLAB Diff, Merge и AutoMerge

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

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

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

Для настройки инструментов MATLAB diff и merge с помощью командной строки 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 и 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

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

  1. Настройте инструменты MATLAB diff и merge как внешние инструменты SourceTree:

    1. Открыв SourceTree, щелкните Инструменты > Параметры.

    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 обнаруживает конфликт слияния, выберите ветвь Незафиксированные изменения, щелкните правой кнопкой мыши измененный файл и выберите команду Разрешить конфликты > Запустить инструмент внешнего слияния.

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

TortoiseSVN

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

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

  2. На боковой панели «Параметры» выберите «Просмотр различий». Нажмите кнопку Дополнительно, чтобы указать приложение diff на основе расширений файлов.

  3. Нажмите Добавить и заполните поля расширением и mlDiff путь к исполняемому файлу:

    Filename, extension or mime-type: .slx
    External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe" %base %mine
  4. Нажмите кнопку ОК и повторите те же действия, чтобы добавить другое расширение файла.

  5. На боковой панели «Параметры» выберите «Diff ViewerMerge Tool». Нажмите кнопку «Дополнительно», чтобы указать приложение слияния на основе расширений файлов.

  6. Нажмите Добавить и заполните поля расширением и mlMerge путь к исполняемому файлу:

    Filename, extension or mime-type: .slx
    External Program: "C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe" %base %mine %theirs %merged
  7. Нажмите кнопку ОК и повторите те же действия, чтобы добавить другое расширение файла.

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

Примечание

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

Интеграция с другими средствами управления версиями

Перфурс- P4V

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

  1. В окне «Перфорация» выберите «Редактирование» > «Установки».

  2. На боковой панели «Установки» выберите «Различие». В разделе «Указать приложение diff по расширению» (переопределение по умолчанию) нажмите кнопку «Добавить».

  3. В диалоговом окне «Добавить тип файла» введите следующую информацию:

    Extension: .slx
    Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlDiff.exe
    Arguments: %1 %2
    

  4. Нажмите кнопку Сохранить.

  5. На боковой панели «Установки» выберите «Объединить». В разделе Указать приложение объединения по расширению (переопределение по умолчанию) нажмите кнопку Добавить.

  6. В диалоговом окне «Добавить тип файла» введите следующую информацию:

    Extension: .slx
    Application: C:\Program Files\MATLAB\R2020b\bin\win64\mlMerge.exe
    Arguments: %b %2 %1 %r

  7. Нажмите кнопку Сохранить и повторите шаги для других расширений файлов.

Совет

Настройка полного пути mlDiff и mlMerge исполняемые файлы соответствуют как установке MATLAB, так и используемой операционной системе. Дополнительные сведения см. в разделе Поиск полных путей для MATLAB Diff, Merge и AutoMerge.

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

Связанные темы