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

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

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

  1. Поиск конфликтующих файлов на вкладке Modified (number of files).

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

    Совет

    Используйте List размещение для просмотра файлов без необходимости развертывания папок.

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

  3. Щелкните правой кнопкой мыши конфликтующий файл и выберите View Conflicts для сравнения версий.

  4. Рассмотрим конфликт. Проект открывает отчет сравнения, показывающий различия между конфликтующими файлами.

    • Для SVN сравнение показывает различия между файлом и версией файла, вызывающего конфликт.

    • Для Git™ сравнение показывает различия между файлом в вашей ветви и ветвью, в которую вы хотите объединить.

    • Для файлов модели смотрите Объединить модели Simulink из Отчета о сравнении.

  5. Используйте отчет сравнения, чтобы определить, как разрешить конфликт.

    Для разрешения конфликтов можно:

    • Используйте отчет для объединения изменений между редакциями.

    • Решите перезаписать один набор изменений другим.

    • Внесите изменения из проекта вручную путем редактирования файлов, изменения меток или редактирования описания проекта.

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

  6. Когда вы разрешите изменения и хотите зафиксировать версию в своей песочнице, в проекте, щелкните правой кнопкой мыши файл и выберите Source Control > Mark Conflict Resolved. Можно использовать инструмент слияния, чтобы пометить разрешенный конфликт, или можно вручную пометить разрешенный в проекте конфликт.

    Для Git статус ветви на панели Git изменяется с MERGING на SAFE.

  7. Выберите вкладку Modified (number of files), чтобы проверить изменения. На вкладке Project нажмите Commit.

Объединение текстовых файлов

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

Маркеры конфликтов появляются в отчете сравнения текста следующим образом:

<<<<<<< .mine
Если ваш отчет сравнения содержит маркеры конфликтов, извлеките их перед слиянием, как описано в Выделении маркеров конфликтов.

Совет

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

  1. В отчете Инструмент выберите различие в отчете и нажмите Merge. Выбранное различие копируется из левого файла в правый.

    Объединённые различия отображают подсветку серых строк и зеленую стрелу слияния.

    Имя объединенного файла в верхней части отчета отображает грязный флаг (filename.m*), чтобы показать, что файл содержит несохраненные изменения.

  2. Щелкните Save Merged File, чтобы сохранить файл справа. Проверьте путь к файлу правого файла в отчете сравнения. (Чтобы сохранить в другой файл, выберите Save Merged File > Save Merged File As). Чтобы разрешить конфликты, сохраните объединенный файл через конфликтующий файл.

  3. Если необходимо просмотреть файлы в редакторе, щелкните ссылки на номера линий в отчете.

    Примечание

    Если вы вносите какие-либо дальнейшие изменения в редакторе, отчет сравнения не обновляется, чтобы отразить изменения, и ссылки на отчеты могут стать неправильными.

  4. После слияния для разрешения конфликтов отметьте разрешенный конфликт и внесите изменения, как описано в разделе «Разрешение конфликтов».

Объедините модели

В отчете «Инструмент сравнения» можно объединить изменения между ревизиями. Для получения дополнительной информации смотрите Объединить модели Simulink из Отчета о сравнении.

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

Выделение маркеров конфликтов

Что такое маркеры конфликтов?

Инструменты системы контроля версий могут вставлять маркеры конфликтов в файлы, которые вы не зарегистрировали как двоичные (например, текстовые файлы). Можно использовать инструменты проекта, чтобы извлечь маркеры конфликтов и сравнить файлы, вызывающие конфликт. Этот процесс помогает вам решить, как разрешить конфликт.

Внимание

Зарегистрируйте файлы модели с помощью инструментов системы контроля версий, чтобы предотвратить их вставку маркеров конфликтов и повреждение моделей. Смотрите Register Model Files with Система Контроля Версий Tools. Если ваша модель уже содержит маркеры конфликтов, инструменты проекта могут помочь вам разрешить конфликт, но только если вы откроете модель из проекта. Открытие модели, содержащей маркеры конфликта из Текущей папки или из обозревателя файлов, может завершиться неудачно, потому что Simulink® не распознает маркеры конфликтов.

Маркеры конфликтов имеют следующую форму:

<<<<<<<["mine" file descriptor]
["mine" file content]
=======
["theirs" file content]
>>>>>>>["theirs" file descriptor]

Если вы пытаетесь открыть файл, отмеченный как конфликтующий, который содержит маркеры конфликта, откроется диалоговое окно Обнаруженные маркеры конфликта (Conflict Markers Found). Следуйте инструкциям, чтобы исправить файл путем извлечения маркеров конфликта. После извлечения маркеров конфликта разрешите конфликты, как описано в разделе «Разрешение конфликтов».

Чтобы просмотреть маркеры конфликтов, в диалоговом окне «Найденные маркеры конфликтов» нажмите кнопку Load File. Не пытайтесь загрузить файлы модели, потому что Simulink не распознает маркеры конфликтов. Вместо этого щелкните Fix File, чтобы извлечь маркеры конфликта.

По умолчанию проект проверяет только конфликтующие файлы на наличие маркеров конфликтов. Вы можете изменить этот выбор, чтобы проверить все файлы или никакие файлы. Щелкните Preferences на вкладке Project, чтобы изменить настройку.

Выделение маркеров конфликтов

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

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

  1. В проекте щелкните правой кнопкой мыши файл и выберите Source Control > Extract Conflict Markers to File.

  2. Оставьте опцию по умолчанию, чтобы скопировать версию «mine» через конфликтующий файл. Установите флажок Compare. Нажмите Extract.

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

Похожие темы