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