Почему все файлы помечены «слияние» в TFS? - PullRequest
15 голосов
/ 25 июня 2009

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

Но когда я выполняю операцию слияния в TFS, он помечает каждый отдельный файл в дереве с типом изменения 'слияние'. Похоже, я должен проверить каждый файл во всем дереве исходного кода! Я действительно не хочу этого делать, потому что тогда становится невозможным посмотреть на набор изменений и посмотреть, какие файлы я фактически изменил как часть моего проекта.

Сначала я подумал, что могу использовать команду отмены изменений tfpt.exe, чтобы отменить все изменения слияния, но это не отменит эти изменения.

У кого-нибудь есть идеи по этому поводу? спасибо.

Ответы [ 3 ]

10 голосов
/ 02 апреля 2014

Это также происходит с необоснованным слиянием. Необоснованное слияние происходит, когда TFS не имеет существующих отношений слияния между ветвями, которые вы объединяете. В результате он считает каждый файл «новым» в обеих ветвях, поэтому он «сливает» каждый файл.

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

Если вы на самом деле не хотите принимать какие-либо изменения из другой ветки, а просто сказать TFS, что они логически имеют ту же версию, вы можете выполнить слияние, «давая кредит» для наборов изменений: tf merge /discard.

7 голосов
/ 26 июня 2009

Есть несколько возможных причин. Это не полный список:

  • Вы выполнили операцию с пространством имен (удаление, восстановление, переименование) в родительской папке файлы с пометкой "объединить"
  • Вы выполнили операцию в пространстве имен (удаление, восстановление, переименование), которая уже была выполнена в целевой ветви
  • Вы выполнили последовательность операций с пространством имен, которые превратились в запрет на операции (например, удаление + восстановление или переименование a -> b -> a)
  • Есть неразрешенные конфликты
  • Вы выполняете сброс

Примечание: все они в равной степени относятся к 2005 и 2008 годам.

1 голос
/ 25 июня 2009

В Visual Studio 2008 и TFS 2008 этого не происходит. Только файлы, которые были изменены, будут помечены как объединенные. Если вы делаете сравнение файла между веткой и стволом, есть ли какие-либо изменения? Такие изменения, как кодировка, все равно заставят TFS объединить этот файл обратно.

...