Имеет ли ветвление TFS дочернее родительское отношение? - PullRequest
1 голос
/ 22 сентября 2011

Когда вы выполняете ветки в tfs, имеет ли значение, если вы ветвитесь от A к B или от B к A? Дело в том, что у нас есть ветвь A и ветвь B, и теперь ветвь A испорчена, и мы хотели бы воссоздать ее из ветки B путем ветвления новой ветки из B. Насколько я знаю, когда вы делаете ветку, вы получаете отношения между ветвями, но вы не получаете отношения «родитель-ребенок», это правильно?

Мой вопрос ясен?

1 Ответ

6 голосов
/ 22 сентября 2011

В точке, где создается новая ветвь, она становится равной той, которую вы выбрали для ветвления.
Хитрость слияния TFS (в отличие, например, от интеграции P4 или слияний ClearCase) заключается в том, что в любой данной точке слияние A -> B & B -> A не будет генерировать равное количествокандидатов на слияние.

Допустим, ветвь A создает ветвь B:

------->A
         \
          \
           -----> B

Допустим, вы вносите изменения в A:

------->A-->A'
         \
          \
           -----> B

Если вы пытаетесь объединить A '-> B вы получите в качестве кандидатов на слияние все ваши наборы изменений / исходные файлы, которые были изменены с A -> A '.
Но если вы попытаетесь слить B -> A', вы вообще не получите кандидатов на слияние.

Это поведение независимо от того, что A является «родителем».

Если ваш 'A' испорчен и не может быть исправлен с помощью регулярного слияния из B -> A, у вас естьследующие опции:

  • Уничтожить A и сгенерировать новую копию B в новой ветви C
  • Откат изменяется от A до тех пор, пока не достигнет «стабильного»
  • Выполните безосновательное слияние с B -> A и форсируйте B-состояние на A

(возможно сслегка не по теме, но, тем не менее, отлично читается - и ценен для моего понимания TFS-пути: Эта статья Р.Бэнкса)

...