Поделиться через


Устранение конфликтов система управления версиями Team Foundation

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Преимущество использования система управления версиями Team Foundation (TFVC) для управления файлами заключается в том, что несколько пользователей могут одновременно работать в файле. Одним из недостатков является то, что иногда необходимо устранить конфликты перед получением, возвратом, отменой размещения, слиянием или откатом файлов.

Хотя это может быть разочарование в возникновении конфликтов, система предоставляет информацию и средства, которые помогут вам понять и устранить конфликты.

Вы также можете разрешить конфликты из командной строки с помощью команды "Разрешить".

Совет

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

Устранение конфликтов

Чтобы устранить конфликты, которые блокируются, можно использовать окно разрешения конфликтов Visual Studio. Чтобы открыть окно, выберите "Действия>разрешать конфликты" на странице "Ожидающие изменения" в Team Explorer.

Снимок экрана: использование окна

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

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

Снимок экрана: окно

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

  • Значок журнала.Журнал для просмотра журнала файла. Если операция, вызвавшей конфликт, является слиянием или откатом, можно выбрать элемент управления меню справа от журнала, а затем выбрать журнал источника или журнал целевых объектов. Дополнительные сведения см. в статье "Получение журнала элемента".

  • Значок сравнения.Сравните или щелкните стрелку раскрывающегося списка рядом с значком и выберите команду. Откроется окно Diff.

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

Авторесулить все конфликты

По умолчанию система автоматически пытается выполнить автоматическое восстановление всех конфликтов, если этот параметр не отключен. Чтобы отключить автоматическое автоматическое отключение авторесулирования all, нажмите кнопку "Параметры инструментов>". В диалоговом окне "Параметры" в разделе "Управление версиями>" Visual Studio Team Foundation Server отмените выбор попытки автоматического разрешения конфликтов при создании.

Вы также можете вручную выбрать autoResolve All в окне "Разрешить конфликты ", а затем выбрать один из следующих параметров:

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

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

    Откроется диалоговое окно "Выбрать конфликты для разрешения ". Проверьте или снимите параметры, которые требуется включить или отключить, а затем выберите AutoResolve.

    Система пытается автоматически устранить конфликты, отображаемые в окне ожидающих изменений . Любые конфликты, которые система не может разрешить, остаются в окне. Необходимо вручную устранить эти конфликты.

Общие сведения о автоматических параметрах

Вы можете ограничить типы конфликтов автоматически разрешенными параметром AutoResolve All . При выборе autoResolve All и выборе определенных типов конфликтов откроется диалоговое окно "Выбрать конфликты для разрешения".

Снимок экрана: диалоговое окно

Причина конфликта

Пример

Выбор флажка


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

В версии файла слева в начале добавлен нуль . В файле справа в конце добавлено три :

Снимок экрана: изменения содержимого, не конфликтующего.

Конфликтует с любыми изменениями содержимого

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

Записи четыре и пять были добавлены в рабочую область или целевую версию:

Снимок экрана: изменение содержимого, уникальное для рабочей области или целевого объекта.

Конфликтует с изменениями содержимого, внесенными только в локальную рабочую область или целевую ветвь

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

Записи четыре и пять были добавлены на сервер или исходную версию:

Снимок экрана: изменение содержимого, уникальное для сервера или источника.

Конфликтует с изменениями содержимого, внесенными только в версию сервера или ветвь источника

Файл был переименован на сервере во время операции получения или проверки или в исходной ветви во время операции слияния или отката.

Вы извлекли файл с именем launch.cs и работали над ним. В течение этого времени кто-то еще проверил набор изменений, который повлиял на тот же файл. Этот набор изменений не изменил содержимое файла, но изменил имя файла на start.cs.

Конфликты, вызванные переименованием файла в версии сервера или исходной ветви

В каждой версии были внесены распространенные изменения содержимого. Кроме того, вы изменили файл, проверили его с помощью встроенной сборки, а затем выберите параметр "Сохранить ожидающие изменения" локально .

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

Снимок экрана: идентичные изменения содержимого в обеих версиях.

Конфликты, вызванные идентичными изменениями в сервере и рабочей области

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

Совет

Если этот флажок установлен, система разрешает эти изменения, скачивая версию сервера в рабочую область.

Выбранные конфликты autoMerge

Чтобы попытаться устранить выбранные конфликты с помощью всех предыдущих параметров автомержей, выберите один или несколько конфликтов, а затем выберите AutoMerge.

Совет

Нажмите и удерживайте клавиши CTRL или SHIFT, чтобы выбрать несколько конфликтов.

Примечание.

Если autoMerge отключен, необходимо вручную устранить конфликты.

Устранение выбранных конфликтов вручную

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

Использование окна слияния

При конфликтующих изменениях содержимого возникает конфликт, вы можете выбрать "Изменения слиянием" в средстве слияния. Откроется окно слияния.

Снимок экрана: изменения слияния в средстве слияния.

В окне слияния можно:

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

Когда вы удовлетворены содержимым области результатов , нажмите кнопку "Принять слияние".

Результат разрешения конфликта отображается в области результатов .