Этот пример показывает вам, как использовать Simulink® Слияние С тремя путями, чтобы разрешить конфликты в моделях Simulink. Можно просмотреть и слить различия в модели Simulink в получившемся отчете.
Этот пример показывает вам, как использовать Слияние С тремя путями, чтобы понять и разрешить различия между двумя конфликтными конструктивными изменениями Simulink. Пример проект Simulink находится под системой контроля версий (Git в этом примере) и содержит изменения, которые конфликтуют с другим пользователем. Вы будете использовать инструмент Three-Way Model Merge, чтобы разрешить конфликты. Вы исследуете свой локальный файл ("Мой"), конфликтная версия ("Их") и общий предок этих двух файлов ("Основа").
Конфликт в этом примере был вызван текущим пользователем, пытающимся объединять изменения другого пользователя на основном ответвлении Git ('Их' изменения) в их ответвление Task1 (содержащий изменения "Шахты").
Их: подсистема экспериментальной модели была обновлена, чтобы использовать явный блок усиления для амплитуды входных команд пилота. Время остановки Симуляции было также обновлено.
Мой: текущий пользователь изменил некоторые параметры конфигурации для модели.
Инструмент Merge автоматически сливает не конфликтовавшие различия. Выполните шаги ниже, чтобы рассмотреть выбор автослияния, редактирование при желании, и решить, как разрешить любые остающиеся различия. Это затем позволит вам передавать разрешенную модель системе контроля версий.
Запустите следующие команды, чтобы создать и открыть проект.
slxmlcomp.internal.examples.setupThreeWayMergeExample();
A copy of the original file "slproject_f14.slx" has been created because it was last saved in an earlier version of Simulink. To recover the original version, rename the file "slproject_f14.slx.r2017b" as "slproject_f14.slx". You can turn this feature off using the <a href="matlab:slprivate('showprefs')">Simulink Preferences</a>. Click <a href="matlab:com.mathworks.services.Prefs.setBooleanPref('SimulinkShowPersistentBackupNotification',false)">here</a> if you don't want to see this message again.
Ищите противоречивые файлы в представлении файлов Проекта Simulink. slproject_f14 файл показывает красный предупреждающий символ в столбце Git, который указывает на конфликт.
1. Чтобы видеть подробный отчет о конфликтах, щелкните правой кнопкой по slproject_f14 файлу и выберите 'View Conflicts'.
Инструмент Three-Way Merge показывает изменения в двух проектах Simulink, которые вызвали этот конфликт файла.
Наверху, Их, Основной и деревья Шахты показывают различия между конфликтной версией, вашей версией и основным предком этих файлов.
Внизу, область Target показывает файл, что вы объедините изменения в. Это - временный файл и будет скопировано в проект Simulink, когда вы принимаете решение принять результат слияния.
2. Исследуйте различие путем нажатия на строку в одном из деревьев. Инструмент слияния отображает изменение для каждой модели в редакторе, например, диалоговое окно Simulink Editor или Configuration Parameters, справа от окна Three-Way Merge.
3. Выберите модели, чтобы отобразиться с кнопками панели инструментов на вкладке Merge в разделе Highlight: Топ-модель или Нижняя Модель.
Инструмент слияния автоматически сливает самые непротиворечивые различия.
4. Исследуйте первое изменение наверху 'Их' дерево путем нажатия на строку под названием 'PilotGain'. Этот узел был объединен автоматически, и можно настроить автоматический выбор с помощью переключателей в целевой панели. Если вы хотите, рассматриваете другой автоматический выбор слияния.
Существует два типа различия, которые требуют пользовательского действия.
Конфликт: инструмент слияния не может автоматически разрешить эти различия, и необходимо выбрать, какой проект вы хотите в конечном файле. Ищите предупреждения в столбце Конфликтов.
Ручное слияние: Некоторые различия должны быть слиты вручную в Simulink или проигнорированы. В Целевой панели эти элементы обозначаются значком с карандашом в столбце Конфликтов.
5. Выберите строку 'StickCommand_rad'. Это различие требует ручного слияния, обозначенного карандашом на значке в столбце Конфликтов.
Разрешите различие в изменении строки в конечном файле путем переименования подключенного параллельно к выводу блока под названием 'Пилот' в Редакторе Simulink от 'StickCommand_rad' до 'Экспериментального Вывода'.
После решения различия сохраняют изменения в Редакторе и отмечают разрешенное использование изменения ручного управления слиянием в столбце Конфликтов.
Отметьте - отчет слияния не обновляет, чтобы показать любые изменения, которые вы вносите в Редакторе.
6. Используйте 'Следующую' кнопку панели инструментов, чтобы рассмотреть и разрешить изменения, пока вы не достигнете конфликта. Этот параметр StopTime был изменен обоими пользователями и конфликтуется. Разрешите конфликт с помощью изменения 'Шахты'. Установите переключатель 'Mine' рядом с StopTime в Целевой панели.
По умолчанию отчет скрывает все нефункциональные изменения, такие как то, чтобы менять местоположение элементов.
7. Выключите фильтры с помощью раздела панели инструментов Фильтров, чтобы исследовать все различия между этими проектами.
8. После того, как вы разрешите все отфильтрованные и неотфильтрованные изменения, нажмите 'Accept & Close'. Инструмент слияния закрывает отчет и модели, принимает результат слияния в конечном файле и отмечает конфликт, как разрешено в инструменте системы контроля версий (Git в этом примере). Разрешенные конфликты позволяют передать изменения в системе контроля версий и продолжить вашу работу.