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


Разрешение конфликтов между двумя файлами

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

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

  • При получении или возврате файла может возникнуть конфликт между версиями в рабочей области и на сервере.

  • При слиянии файлов из разных ветвей может возникнуть конфликт между версиями файла в исходной и конечной ветви.

  • При выполнении отката с помощью команды tf rollback может возникнуть конфликт между текущей и создаваемой версиями файла.

Возникновение конфликтов при попытке выполнить операцию весьма неприятно, однако Team Foundation (подсистема контроля версий) предоставляет информацию, которая поможет разобраться в причине конфликта, и средства для устранения конфликта. В большинстве случаев можно быстро разрешить один или несколько конфликтов с помощью автоматических функций, таких как "авторазрешение всех" и "автообъединение".

Содержание этой статьи

  • Управление отображением конфликтов

  • Получение дополнительных сведений о конфликте

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

Необходимые разрешения

Для выполнения данных процедур необходимо разрешение на Чтение элемента в исходном пути и разрешение на Извлечение элемента в конечном пути со значениями Разрешить. Для переименования элемента в конечном пути необходимо разрешение на Извлечение как для исходного, так и для конечного пути со значением Разрешить. Если необходимо использовать блокировку, следует задать для разрешения Блокировка значение Разрешить. Дополнительные сведения см. в разделе Разрешения Team Foundation Server.

Управление отображением конфликтов

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

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

Отображение всех конфликтов в рабочей области

  1. Если окно Ожидающие изменения не открыто, выберите в меню Вид пункт Другие окна, а затем — Ожидающие изменения.

  2. Щелкните ms181433.VCtrl_PendChgsConflictsButton(ru-ru,VS.100).png Конфликты.

  3. Нажмите кнопку Получить все конфликты.

    После нажатия этой кнопки выводится сообщение, начинающееся со слов: Всего конфликтов: n….

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

Обновление окна "Ожидающие изменения"

  1. Если окно Ожидающие изменения не открыто, выберите в меню Вид пункт Другие окна, а затем — Ожидающие изменения.

  2. Щелкните ms181433.VCtrl_PendChgsConflictsButton(ru-ru,VS.100).png Конфликты.

  3. Нажмите кнопку Обновить.

Получение дополнительных сведений о конфликте

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

Получение дополнительных сведений о конфликте

  1. Вызовите канал Конфликты в окне Ожидающие изменения (дополнительные сведения см. в подразделе Управление отображением конфликтов).

  2. Найдите и выберите файл, который требуется исследовать.

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

  4. (Необязательно.) Выполните одно из следующих действий.

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

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

    • Щелкните элемент управления меню справа от кнопки Кнопка сравнения файла Сравнить и выберите команду.

      Если требуется…

      Следует…

      Чтобы…

      Возвратить или получить файл

      Сравнить локальную версию с серверной

      Сравнить копию в рабочей области с последней версией на сервере.

      Сравнить локальную версию с оригиналом

      Сравнить копию в рабочей области с версией на сервере, которая была извлечена ранее.

      Сравнить серверную версию с оригиналом

      Сравнить последнюю версию на сервере с извлеченной версией.

      Выполнить слияние файла

      Сравнить исходный объект с целевым

      Сравнить версию в исходном объекте слияния с версией в целевом объекте слияния.

      Сравнить исходный объект с базовым

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

      Сравнить целевой объект с базовым

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

      Откатить изменения в файле

      Сравнить исходный объект с целевым

      Сравнить версию файла, непосредственно предшествующую удаляемым версиям (исходный объект) с версией файла после отката (целевой объект) в рабочей области.

      Сравнить исходный объект с базовым

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

      Сравнить целевой объект с базовым

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

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

Несколько средств в составе Team Foundation (подсистема контроля версий) можно использовать для разрешения конфликтов, блокирующих операции, которые требуется выполнить.

Выбор метода для разрешения конфликтов

  • Просмотрите следующую таблицу и щелкните предпочтительный для использования метод.

    Метод разрешения

    Описание

    Автоматическое разрешение всех конфликтов

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

    Автослияние отдельного конфликта

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

    Разрешение отдельного конфликта вручную

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

Автоматическое разрешение всех конфликтов

  1. Вызовите канал Конфликты в окне Ожидающие изменения (дополнительные сведения см. в подразделе Управление отображением конфликтов).

  2. Щелкните Авторазрешение всех и выберите один из следующих пунктов.

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

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

      Отобразится диалоговое окно Выбор конфликтов для разрешения. Установите или снимите флажки, чтобы включить или отключить те или иные эвристические правила, и нажмите кнопку Автообъединение. Дополнительные сведения см. в разделе Определение параметров устранения конфликтов автоматического разрешения.

  3. Система попытается автоматически разрешить конфликты, отображенные в окне "Ожидающие изменения". Конфликты, которые системе не удастся разрешить, останутся в окне; эти конфликты необходимо разрешить вручную.

Автоматическое объединение отдельного конфликта

  1. Вызовите канал Конфликты в окне Ожидающие изменения (дополнительные сведения см. в подразделе Управление отображением конфликтов).

  2. Найдите и выберите конфликт, который требуется разрешить.

    Совет

    Для выбора нескольких конфликтов нажмите и удерживайте клавишу CONTROL или SHIFT.

  3. Нажмите кнопку Автообъединение.

Примечание

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

Разрешение отдельного конфликта вручную

  1. Вызовите канал Конфликты в окне Ожидающие изменения (дополнительные сведения см. в подразделе Управление отображением конфликтов).

  2. Найдите и выберите конфликт, который требуется разрешить.

    Совет

    Для выбора нескольких конфликтов нажмите и удерживайте клавишу CONTROL или SHIFT.

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

  3. Выберите действие для разрешения конфликта.

См. также

Задачи

Согласование различий между двумя папками

Слияние файлов и папок

Получение исходного кода для командного проекта

Слияние файлов и папок

Получение исходного кода для командного проекта

Ссылки

Команда Resolve

Основные понятия

Отправка изменений

Ожидающие изменения

Другие ресурсы

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