В этом примере показано, как использовать Simulink ® Three-Way Merge для разрешения конфликтов в моделях Simulink. Вы можете просмотреть и объединить различия модели Simulink в полученном отчете.
Создайте и откройте рабочую копию примера проекта. MATLAB ® копирует файлы в папку примера, чтобы можно было их редактировать.
slcomparisons.examples.simulinkThreeWayMerge;
Building with 'MinGW64 Compiler (C)'. MEX completed successfully.
Пример проекта находится под Git™ системой контроля версий. Вы пытаетесь объединить изменения другого пользователя на главной ветви Git в свою TaskBranch
. Эта операция приводит к конфликтам.
Чтобы разрешить конфликты с помощью инструмента Three-Way Model Merge, в этом примере показано, как изучить ваш локальный файл (Mine), конфликтующую редакцию (Theirs) и общего предка этих двух файлов (Base).
Их: Другой пользователь обновил подсистему модели пилот-сигнала, чтобы использовать явный блок усиления для амплитуды входных команд пилота. Он также обновил время остановки симуляции.
Mine: Вы изменили некоторые настройки строения подсистемы модели пилота.
Инструмент «Объединение» автоматически объединяет несвязанные различия. Выполните следующие шаги, чтобы просмотреть варианты automerge, отредактировать при необходимости и решить, как устранить оставшиеся различия. После разрешения конфликтов фиксируйте разрешенную модель в системе контроля версий.
Поиск конфликтующих файлов в представлении файлов проекта. 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
, и помечает конфликт как разрешенный в инструменте системы контроля версий. Теперь можно зафиксировать изменения в системе контроля версий и продолжить работу.
Система контроля версий в проектах
Настройте внешнюю систему контроля версий, чтобы использовать MATLAB для Diff и слияния