TFS 2010: ветвление - Почему наборы изменений говорят, что они не были объединены, когда они были до Ветвления? - PullRequest
7 голосов
/ 07 марта 2012

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

Пример: скажем, я разветвился от источника к цели, когда в источнике было 9 наборов изменений.Изменение 10 было сделано в Source.Я иду на слияние от Source к Target, и TFS говорит мне, что изменения 6 и 7 и 10 должны быть объединены (даже если 6 и 7 были там до того, как я разветвился, и я могу подтвердить, что эти изменения находятся в Target)

Я новичок в TFS, и это произошло, когда я впервые начал реализовывать ветвление и слияние.Новейшая ветвь, которую я создал, не делала этого.

Сейчас у нас есть магистраль, а затем 1 ветвь для текущего контроля качества для следующего выпуска и еще одна ветвь для исправлений для производства.Эта проблема возникла в ветке QA, но когда я сделал ветку исправлений, все было в порядке.

Ответы [ 2 ]

7 голосов
/ 08 марта 2012

Я сталкивался с этим несколько раз. В конце концов я просто слил «жулик» наборы изменений кандидатов от источника к цели. Я изучил ожидаемое слияние и определил, что изменений не было. Передача слияния избавила от этих наборов изменений-кандидатов. Я подумал, что смогу откатиться, если не получится.

РЕДАКТИРОВАТЬ : Похоже, что при обновлении до TFS 2010 существует ошибка, которая приведет к дополнительным кандидатам на слияние (см. http://support.microsoft.com/kb/2135068)

«Любые элементы в ветви, которые были переименованы несколько раз или занимали несколько других элементов, занимающих свое пространство имен (посредством комбинаций добавления / удаления), потеряют свои связи с соответствующими элементами в других ветвях.»

Что касается разрешения, статья поддержки говорит:

"Чтобы решить проблему с дополнительными кандидатами на слияние, следует использовать параметр / discard. Для этого запустите слияние следующего формата из командной строки:

tf merge <source branch> <target branch> /r /discard:CXXX~CYYY

В этом примере XXX и YYY представляют идентификаторы набора изменений диапазона изменений, которые следует отменить. После того, как это слияние было зарегистрировано, нежелательные кандидаты больше не будут появляться для будущих слияний. Также имейте в виду, что из-за улучшений в алгоритме слияния в TFS 2010 элементы, удаленные как в исходной, так и в целевой ветвях, приведут к изменениям, которые будут объединены. В этих случаях лучше не сбрасывать наборы изменений, чтобы история слияния обновлялась правильно. «

0 голосов
/ 13 марта 2012

У меня тоже было это несколько раз.Я подозреваю, что причина в том, что TFS управляет отложенными слияниями.Если вы попытаетесь объединить эти изменения, а тип Изменения будет просто «объединять», а не «объединять, редактировать», тогда безопасно объединить их и быть уверенным, что никаких изменений не произошло.Если вы не объедините их, TFS будет продолжать пытаться объединять неизмененные до бесконечности, возможно, в конечном итоге скрывая реальные изменения.Я советую объединить эти без изменений как можно скорее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...