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

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

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

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

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

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

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

Чтобы разрешить конфликты с помощью инструмента Three-Way Model Merge, в этом примере показано, как изучить ваш локальный файл (Mine), конфликтующую редакцию (Theirs) и общего предка этих двух файлов (Base).

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

Mine: Вы изменили некоторые настройки строения подсистемы модели пилота.

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

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

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

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

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

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

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

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

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

3. На вкладке «Объединение», в разделе « Подсветке», выберите модели для отображения с помощью кнопок «Верхняя модель» или «Нижняя модель».

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

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

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

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

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

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

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

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

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

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

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

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

Изменение фильтров

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

7. На вкладке «Объединение», в разделе «Фильтр», включите и отключите фильтры, чтобы исследовать различные изменения между этими проектами.

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

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

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

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

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

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

Сравнение версий

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

Похожие примеры

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

Сравнение и слияние моделей Simulink, содержащих Stateflow