Простые проблемы слияния TFS - PullRequest
1 голос
/ 24 сентября 2010

Кажется, что мой сценарий настолько прост, насколько это возможно. У меня есть Main и ветка Dev. Я выбрал каталог в Dev, в котором есть только мой код, и провел слияние (на основе всех наборов изменений до определенного набора изменений.

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

Набор изменений 322 успешно зарегистрирован.

Удаление C: \ SourceEagleConnect \ Main \ BizTalk \ ACH \ Sample \ Sample1.sln TF14119: Невозможно объединить удаление $ / EagleConnect / Dev / BizTalk / ACH / BizTalk с $ / EagleConnect / Main / BizTalk / ACH / BizTalk, поскольку один из его дочерних элементов был переименован или перемещен. TF14121: Изменения, ранее сделанные в $ / EagleConnect / Dev / BizTalk / ACH / Sample1 / Sample1.sln, которые не были объединены, будут отменены путем объединения удаления $ / EagleConnect / Dev / BizTalk / ACH / Sample1 / Sample1.sln , TF14119: Невозможно объединить удаление $ / EagleConnect / Dev / BizTalk / ACH / BizTalk с $ / EagleConnect / Main / BizTalk / ACH / BizTalk, поскольку один из его дочерних элементов был переименован или перемещен.

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

Затем я использовал инструмент сравнения для сравнения диска Dev и Main, и я вижу много файлов в Main, которые не имеют изменений от Dev.

На одном конкретном файле я сделал следующий анализ. Я сделал «просмотр истории» как в Dev, так и в Main, затем запустил из командной строки «tf merges Dev / file Main / file».

Просмотр истории Dev показывает:

213 edit    nwalters    8/6/2010 2:43 PM    New Host Names based on application instead of adapter 
159 edit    nwalters    7/20/2010 10:16 AM  BTDF - reset to use new SettingsFileGenerator.xml, improved to handle new EagleConnectConnectionString 
50  branch  nwalters    6/22/2010 10:04 AM  Original checkin of "Dev" Branch

Просмотр истории на главных выставках:

323 merge, edit nwalters    9/23/2010 2:02 PM   BizTalk-Only Merge 09/23/2010 (there were some ACH warnings) 
175 merge, edit nwalters    7/27/2010 2:29 PM   Check-in after big merge of all BizTalk from Dev to Main 
49  add nwalters    6/22/2010 10:00 AM  Original checkin of EagleConnect source cod to TFS

"tf merges" показывает:

Changeset Merged in Changeset Author                           Date
--------- ------------------- -------------------------------- ----------
     159                  175 nwalters                         7/27/2010
     213                  323 nwalters                         9/23/2010

Похоже, что набор изменений 213, "потерянное" изменение было включено в слияние 323. Тем не менее, когда я смотрю на основной исходный код, его там нет (его нет на диске, и если я делаю «просмотр» [из истории в проводнике исходного кода], то, похоже, его тоже нет в TFS).

Когда я делаю слияние сейчас, оно говорит "нечего объединять".

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

Что касается вашего первого вопроса, слияние TFS из ветви Source в ветку Target НЕ автоматически регистрирует изменения слияния в ветке target.Способ слияния TFS работает так: если вы использовали опцию «Последняя версия» для слияния:

  1. , он сравнивает историю наборов изменений в целевой ветви и определяет, какие наборы изменений из источника необходимо объединитьв цель.

  2. копирует версию SERVER наборов изменений ветви Source в ЛОКАЛЬНУЮ версию ветви Target (это дает вам возможность построить локальную цель с этими изменениями иубедитесь, что она не сломает вашу существующую сборку, прежде чем вы ее зарегистрируете.)

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

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

0 голосов
/ 28 сентября 2010

Я выполнил последнюю версию на другой машине, и код отлично совпал (сравнение диска с Dev до Main).Итак, я работаю сейчас, по-видимому, каждый элемент, который не соответствует, вызван одним из следующих действий:

  1. Он был изменен за пределами TFS
  2. Он никогда не проверялсяTFS (некоторые я забыл проверить, другие были типами bin / debug, которые не будут проверены).
...