SVN Code слияние между несколькими ветвями проблемы

Мы используем SVN 1.6. Нам нравится выполнять слияние кода между ветвями, и мы попадаем в дилемму.

Ветвь А существует
Люди, делающие изменения кода на Ветви A
Ветвь B создана из ветви A
Люди, делающие изменения кода на обеих ветвях A и B
Код синхронизации ветви A сливается с веткой B
Через некоторое время
Ветка С создана из ветви А
Ветвь A продолжает слияние кода синхронизации с веткой B (на короткое время)
Люди, делающие изменения кода в ветви C Люди, останавливающие изменения кода в ветви A и ветви "заморожены", не более
Люди, делающие изменения кода на Ветви B
Синхронизирующий код ветви C сливаются с веткой B
Люди, делающие изменения кода на Ветвях B и C
Через некоторое время

Теперь дилемма: нам нравится объединять ветвь B с ветвью C

Поскольку ветвь B принадлежит ветке A, а не ветке C, мы не могли применить опцию --reintegrate для слияния кода из B в C, потому что они не имеют общего происхождения

Какой наименее рискованный способ слияния (без параметра --reintegrate), чтобы предотвратить "двойное слияние / дублированный код" (C в B) в ветке C?

1 ответ

Визуализируйте свою структуру ветвей простым рисунком. Мое понимание вашей проблемы:

               C ---- C ---- C ----- C
              /        \      \
A --- A ---- A --- A    \      \      ???
 \     \      \     \    \      \
  B --- B ---- B --- B -- B ---- B ---- B

Я бы интегрировал C и B в A. Если это не вариант, вы можете сделать это в 3 шага / 3 серии шагов:

  1. Объединить все изменения, сделанные в B, в C, но не те, которые были объединены из A. Делайте это, пока не достигнете последнего слияния из A в B (которого нет в C)
  2. Слить это последнее слияние от А до Б также в С
  3. Объединить оставшиеся изменения, сделанные на B (после последнего слияния с A), но не включать изменения, включенные в C

Я не совсем ясно о вашей структуре. Если бы это было

               C ---- C ---- C ----- C
              /        \      \
A --- A ---- A --- A    \      \      ???
 \     \            \    \      \
  B --- B ---- B --- B -- B ---- B ---- B

Я бы взял последние изменения из А прямо в С.

Другие вопросы по тегам