exponenta event banner

Объединение моделей Simulink из отчета о сравнении

Инструменты объединения позволяют:

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

  • Объединение любых двух файлов модели с помощью двустороннего объединения. Откройте, выбрав пункт Сравнить пункты контекстного меню.

  • Объединение кода функционального блока MATLAB ® с помощью текстовых отчетов сравнения.

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

При наличии конфликтующего файла модели в системе управления версиями в проекте или браузере «Текущая папка» щелкните правой кнопкой мыши и выберите «Просмотр конфликтов». Разрешить конфликты можно с помощью инструмента «Трехстороннее объединение модели». Проверьте локальный файл по сравнению с конфликтующей редакцией и базовым файлом-предком и решите, какие изменения сохранить. Можно разрешить конфликт и отправить изменения.

  1. Пример трехстороннего слияния см. в разделе Разрешение конфликтов с трехсторонним объединением Simulink.

  2. В проекте найдите конфликтующий файл модели, щелкните правой кнопкой мыши и выберите Показать конфликты (View Conflicts). Просмотр конфликтов в контекстном меню возможен только в том случае, если файл помечен как конфликтующий системой управления версиями.

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

  1. Проверьте столбцы отчета Слияние.

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

    • Внизу в поле Цель (Target) отображается локальный файл, в который будут объединены изменения. Инструмент «Объединить» уже автоматизировал различия, которые он может объединить.

  2. Проверьте разницу, нажав кнопку Далее (Next) или щелкнув строку в столбцах Их (Thirs), База (Base) и Шахта (Mine).

    Инструмент объединения отображает две модели (или если выбрана настройка конфигурации, отображаются два диалогового окна Параметры конфигурации модели (model Configuration Parameters)). По умолчанию отображаются их модели и целевые модели.

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

    Примечание

    При открытии инструмента объединения с помощью команды Просмотр конфликтов (View Conflicts) модели Их (Thirs), База (Base) и Шахта (Mine) являются временными файлами, в которых отображаются конфликтующие ревизии. Изучите их, чтобы решить, как объединять. Целевая модель - это копия Mine, содержащая результаты слияния в отчете.

  4. Выберите версию для каждого изменения, нажав кнопки на панели «Цель». Можно объединить измененные, добавленные или удаленные узлы, а также отдельные параметры. Инструмент «Объединить» выбирает вариант для каждой разницы, которую он может устранить автоматически. Просмотрите выбранные варианты и при необходимости измените их.

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

    Совет

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

  5. Некоторые различия необходимо объединить вручную. На панели Цель (Target) найдите значок объединения вручную в столбце Конфликты (Conflicts), в котором показано, что необходимо выполнить действие.

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

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

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

    Проверьте наличие изменений, отфильтрованных из текущего представления, просмотрев заголовки вкладок сводной таблицы. На заголовках вкладок Отфильтрованное представление (Filtered View) и Все изменения (All Changes) отображается количество изменений. По умолчанию отчет скрывает все нефункциональные изменения. Отключить активные фильтры для просмотра всех выявленных изменений.

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

    Чтобы сохранить и не пометить конфликт как разрешенный, выберите «Принять и закрыть» > «Сохранить и закрыть».

Дополнительные сведения о разрешении конфликтов в списке изменений измененных файлов проекта см. в разделе Разрешение конфликтов.

Использовать трехстороннее объединение с внешними средствами управления версиями

При использовании системы управления версиями вне MATLAB можно настроить внешние инструменты системы управления версиями, чтобы открыть трехстороннее объединение (или двустороннее объединение для difs).

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

Открыть трехстороннее объединение без использования системы управления версиями

Если система управления версиями не используется или требуется выбрать три файла для объединения, можно открыть трехстороннее объединение с помощью функции slxmlcomp.slMerge. Укажите файлы для объединения, например:

slxmlcomp.slMerge(baseFile, mineFile, theirsFile, targetFile);
Откроется окно Трехстороннее объединение (Three-Way Merge), в котором можно объединить изменения в baseFile, mineFile, и theirsFile в targetFile.

Двустороннее объединение модели

Из отчета о сравнении можно объединить две модели Simulink ®. Элементы контекстного меню Сравнить (Compare) из проекта или браузера Текущая папка (Current Folder) открывают двустороннее объединение модели. Если вы используете систему управления версиями и хотите разрешить конфликты с помощью трехстороннего объединения моделей, см. раздел Разрешение конфликтов с помощью трехстороннего объединения моделей.

Функция объединения позволяет объединить две версии конструкции, смоделированной в Simulink. Можно объединить отдельные параметры, блоки или все подсистемы. Все подсистемы могут быть объединены как единое целое, только если они полностью вставлены или удалены.

  1. На вкладке Сравнение (Comparison) щелкните Режим объединения (Merge Mode). В нижней части отчета появится панель Цель (Target).

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

    Совет

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

  3. Просмотрите результаты в отчете и моделях. Щелкните Сохранить файл (Save File). Команда «Сохранить файл» копирует временный целевой файл поверх правого файла при сравнении и повторно запускает сравнение.

  4. (Необязательно) Чтобы отменить все операции слияния, нажмите кнопку «Закрыть объединение» без сохранения файла.

  5. Проверьте изменения объединения в редакторе Simulink. При необходимости подключите все линии, которые программное обеспечение не подключило автоматически. Отчет о сравнении не обновляется для отображения изменений, внесенных в редакторе.

Советы по объединению

  • Перед строками в части отчета Simulink необходимо объединить блоки. Перед объединением переходов необходимо объединить состояния и соединения, иначе отчет не сможет создать соединения.

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

  • Не все параметры могут быть объединены. В этом случае на целевой панели отображается только один переключатель, указывающий версию, которая находится в целевой модели.

  • Сведения о слиянии моделей с идентичными именами см. в разделе Сравнение моделей с идентичными именами.

Объединить код функционального блока MATLAB

  1. Чтобы объединить различия в коде блока функции MATLAB, создайте отчет сравнения для родительских моделей.

  2. Нажмите кнопку «Режим объединения».

    При этом создается и открывается третий файл с именем targetFile. Он может содержать изменения из левой или правой модели.

  3. Используйте кнопки в правой части отчета, чтобы выбрать нужные изменения в целевом файле.

  4. Сохраните эти изменения в правой модели с помощью кнопки «Сохранить файл».

Связанные темы