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


Основные сведения о различиях между файлами и типах конфликтов

Обновлен: Ноябрь 2007

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

  • Слияние изменений между ветвями.

  • Загрузка файлов в рабочую область.

  • Возврат новых версий файла.

Типы конфликтов

В этом разделе содержатся сведения о конфликтах следующих типов.

Конфликт версий

Конфликт имен файлов

Конфликт локальной перезаписи

Конфликт версий

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

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

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

  • Слияние. Две ветви одного файла были изменены. Пользователь пытается выполнить слияние изменений в одной ветви с другой ветвью. Возникает конфликт версий, поскольку обе ветви файла были изменены.

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

Конфликты версий

Изменение локальной или исходной версии

Изменение серверной или конечной версии

Параметры разрешения

(получение или возврат)

Параметры разрешения

(слияние)

Изменение

Переименование

Отмена удаления

Изменение

Переименование

Отмена удаления

Объединить изменения для меня (если нет конфликтов)

Объединить изменения в средстве слияния

Отменить мои локальные изменения

Отменить изменения на сервере

Объединить изменения для меня (если нет конфликтов)

Объединить изменения в средстве слияния

Сохранить изменения в конечной ветви

Копировать элемент из исходной ветви — вариант по умолчанию.

 

Удаление

Восстановить файл и объединить изменения для меня (если нет конфликтов)

Восстановить файл и объединить изменения в средстве слияния

Отменить мои локальные изменения

Восстановить файл, но сохранить мои изменения

Восстановить файл и объединить изменения для меня (если нет конфликтов)

Восстановить файл и объединить изменения в средстве слияния

Отменить изменения из исходной ветви

Копировать элемент из исходной ветви

Удаление

Изменение

Переименование

Отмена удаления

Отменить мои локальные изменения

Отменить изменения на сервере

Отменить изменения из исходной ветви

Удалить элемент в конечной ветви

 

Удалить

Отменить мои локальные изменения

Отменить изменения из исходной ветви

 

 

 

Пропустить эти конфликты (для конфликтов этого типа никакие действия предприниматься не будут).

Конфликт имен файлов

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

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

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

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

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

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

Конфликты имен файлов

Изменение локальной или исходной версии

Изменение серверной или конечной версии

Параметры разрешения (получение или возврат)

Параметры разрешения (слияние)

Добавление

Ветвление

Переименование

Отмена удаления

Добавление

Ветвление

Переименование

Отмена удаления

Отменить мои локальные изменения

Игнорировать конфликт

Отменить изменения из исходной ветви

Игнорировать конфликт

 

 

 

Пропустить эти конфликты (для конфликтов этого типа никакие действия предприниматься не будут). Этот вариант выбран по умолчанию.

Конфликт локальной перезаписи

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

Конфликты локальной перезаписи

Изменение локальной или исходной версии

Изменение серверной или конечной версии

Параметры разрешения (получение или возврат)

Параметры разрешения (слияние)

Неприменимо

Неприменимо

Переписать локальный файл или папку

Игнорировать конфликт

Неприменимо

 

 

 

Пропустить эти конфликты (для конфликтов этого типа никакие действия предприниматься не будут).

Этот вариант выбран по умолчанию.

ms181434.alert_note(ru-ru,VS.90).gifПримечание.

С помощью диалогового окна Устранение выбранных конфликтов нельзя устранять конфликты версий, для разрешения которых требуется использовать средство слияния. Это диалоговое окно не позволяет объединять изменения с помощью средства слияния. Кроме того, если после выбора варианта Объединить изменения для меня будут найдены конфликты в содержимом файлов, запустить средство слияния также будет невозможно. Вместо этого будет открыто диалоговое окно Неустраненные конфликты с информацией о том, что конфликты в некоторых файлах необходимо устранить по-отдельности. Если неустраненные конфликты имеются только в одном файле, имя этого файла будет указано в диалоговом окне. Если неустраненные конфликты имеются в нескольких файлах, в диалоговом окне будет указано количество таких файлов.

Ниже перечислены варианты сравнения.

Тип конфликта

Изменение исходной версии

Параметры сравнения (получение или возврат)

Параметры сравнения (слияние)

Версии

Изменение

Переименование

Отмена удаления

Локальный с серверным

Локальный с первоначальным

Серверный с первоначальным

Исходный с конечным

Исходный с базовым

Конечный с базовым

 

 

Локальный с удаленным

Локальный с первоначальным

Удаленный с первоначальным

Исходный с удаленным

Исходный с базовым

Удаленный с базовым

 

Удаление

Первоначальный с серверным

Удаленный с конечным

 

 

Неприменимо

Неприменимо

Имена файлов

Добавление

Ветвление

Переименование

Отмена удаления

Локальный с серверным

Исходный с конечным

Локальная перезапись

Неприменимо

Неприменимо

Неприменимо

См. также

Задачи

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

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

Практическое руководство. Возврат ожидающих изменений

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

Разрешение конфликтов, связанных с различиями между папками и файлами (система управления версиями Team Foundation)