exponenta event banner

Разрешение конфликтов при трехстороннем слиянии Simulink

В этом примере показано, как использовать трехстороннее слияние Simulink ® для разрешения конфликтов в моделях Simulink. Можно просматривать и объединять различия модели Simulink в полученном отчете.

Настройка примера проекта

Создайте и откройте рабочую копию примера проекта. MATLAB ® копирует файлы в папку примера, чтобы их можно было редактировать.

slcomparisons.examples.simulinkThreeWayMerge;
Building with 'MinGW64 Compiler (C)'.
MEX completed successfully.

Изменения и конфликты модели Simulink

Пример проекта находится в системе управления версиями Git™. Вы пытаетесь объединить изменения другого пользователя в главной ветви Git в TaskBranch. Эта операция приводит к конфликтам.

Для разрешения конфликтов с помощью инструмента «Трехстороннее слияние моделей» в этом примере показано, как проверить локальный файл (Mine), конфликтующую ревизию (Theirs) и общий предок этих двух файлов (Base).

Другой пользователь обновил подсистему модели пилота, чтобы использовать явный блок усиления для амплитуды входных команд пилота. Он также обновил время остановки моделирования.

Мой: Вы изменили некоторые настройки конфигурации для подсистемы пилотной модели.

Инструмент «Объединение» автоматически объединяет несвязанные различия. Выполните следующие действия, чтобы просмотреть варианты автозапуска, при необходимости отредактировать и решить, как устранить оставшиеся различия. После разрешения конфликтов зафиксируйте разрешенную модель в системе управления версиями.

Открыть трехстороннее объединение Simulink

Поиск конфликтующих файлов в представлении файлов проекта. slproject_f14 в столбце Git отображается красный символ предупреждения, указывающий на конфликт.

1. Чтобы просмотреть подробный отчет о конфликтах, щелкните правой кнопкой мыши slproject_f14 и выберите Просмотр конфликтов.

Просмотр изменений

Инструмент «Трехстороннее объединение» показывает изменения в двух конструкциях Simulink, вызвавшие этот конфликт файлов.

  • Деревья «Их», «База» и «Шахта» показывают различия между конфликтующей редакцией, редакцией и базовым предком этих файлов.

  • В дереве назначения отображается файл, в который будут объединены изменения. Это временный файл, который будет скопирован в проект при принятии результата объединения.

2. Проверьте разницу, щелкнув строку в одном из деревьев. Инструмент объединения отображает изменения для каждой модели в редакторе, например в редакторе Simulink Editor или диалоговом окне Параметры конфигурации (Configuration Parameters), справа от окна Трехстороннее объединение (Three-Way Merge).

3. На вкладке Объединить (Merge) в разделе Подсветка (Highlight) выберите модели для отображения с помощью кнопок Верхняя модель (Top Model) или Нижняя модель (Bottom Model).

Просмотр автоматических слияний

Инструмент объединения автоматически объединяет большинство несвязанных различий.

4. Проверьте первое изменение в верхней части дерева «Свои», щелкнув строку PilotGain. Этот узел был автоматически объединен, и можно настроить автоматические варианты выбора с помощью кнопок в дереве цели. При необходимости просмотрите другие варианты автоматического объединения.

Разрешение конфликтов

Существует два типа различий, требующих действий пользователя.

Конфликт: Инструмент слияния не может автоматически устранить эти различия, и вам нужно выбрать нужный дизайн в целевом файле. На панели «Цель» найдите предупреждения в столбце конфликта.

Объединение вручную: некоторые различия должны быть объединены вручную в Simulink или проигнорированы. На панели «Цель» эти элементы отображаются значком карандаша в столбце конфликта.

5. Выберите StickCommand_rad строка. Это различие требует ручного объединения, обозначенного значком карандаша в столбце конфликта.

Устраните разницу в изменении строки в targetFile переименованием линии, подключенной к выходу блока с именем Pilot в редакторе Simulink из StickCommand_rad кому Pilot Output.

После устранения разницы сохраните изменения в редакторе и пометьте их как разрешенные с помощью ручного управления слиянием в столбце Конфликты.

Отчет о слиянии не обновляется для отображения изменений, внесенных в редакторе.

6. Используйте кнопку «Следующая панель инструментов» для просмотра и разрешения изменений до тех пор, пока не возникнет конфликт. Это StopTime был изменен обоими пользователями и конфликтует. Разрешите конфликт с помощью изменения шахты. Нажмите кнопку рядом с StopTime в столбце шахты на панели «Цель».

Изменить фильтры

По умолчанию отчет скрывает все нефункциональные изменения, такие как изменение положения элементов.

7. На вкладке Объединить (Merge) в разделе Фильтр (Filter) включите и выключите фильтры для просмотра различных изменений между этими конструкциями.

Принять изменения

8. После устранения всех отфильтрованных и нефильтрованных изменений нажмите кнопку Принять и закрыть. Инструмент объединения закрывает отчет и модели, принимает результат объединения в targetFileи помечает конфликт как разрешенный в средстве управления версиями. Теперь можно зафиксировать изменения в системе управления версиями и продолжить работу.

Дополнительная информация

Сравнение моделей Simulink

Система управления версиями в проектах

Разрешение конфликтов

Сравнить версии

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

Связанные примеры

Сравнение и объединение моделей Simulink

Сравнение и объединение моделей Simulink, содержащих поток состояний