Решение конфликтов

Решение конфликтов

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

  1. Ищите противоречивые файлы во вкладке Modified (number of files).

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

    Совет

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

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

  3. Щелкните правой кнопкой по противоречивому файлу и выберите View Conflicts, чтобы сравнить версии.

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

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

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

    • Для образцовых файлов смотрите Слияние Модели Simulink из Отчета Сравнения.

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

    Чтобы разрешить конфликты, вы можете:

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

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

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

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

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

    Для Git состояние Branch в панели 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 из Отчета Сравнения.

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

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

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

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

Внимание

Зарегистрируйте образцовые файлы с инструментами системы контроля версий, чтобы препятствовать тому, чтобы они вставили маркеры конфликта и повредили модели. Смотрите Регистрируют Образцовые Файлы с Инструментами Системы контроля версий. Если ваша модель уже содержит маркеры конфликта, инструменты проекта могут помочь вам разрешить конфликт, но только если вы открываете модель из проекта. Открытие модели, которая содержит маркеры конфликта от Текущей папки или из файлового менеджера, может перестать работать, потому что Simulink® не распознает маркеры конфликта.

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

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

При попытке открыться, отмеченный файл конфликтовал, который содержит маркеры конфликта, диалоговое окно Conflict Markers Found открывается. Следуйте за подсказками, чтобы зафиксировать файл путем извлечения маркеров конфликта. После того, как вы извлекаете маркеры конфликта, разрешаете конфликты, как описано в Конфликтах Твердости.

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

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

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

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

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

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

  2. Оставьте опцию по умолчанию, чтобы скопировать версию “шахты” по противоречивому файлу. Оставьте флажок Compare выбранным. Нажмите Extract.

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

Похожие темы