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 серии шагов:
- Объединить все изменения, сделанные в B, в C, но не те, которые были объединены из A. Делайте это, пока не достигнете последнего слияния из A в B (которого нет в C)
- Слить это последнее слияние от А до Б также в С
- Объединить оставшиеся изменения, сделанные на B (после последнего слияния с A), но не включать изменения, включенные в C
Я не совсем ясно о вашей структуре. Если бы это было
C ---- C ---- C ----- C
/ \ \
A --- A ---- A --- A \ \ ???
\ \ \ \ \
B --- B ---- B --- B -- B ---- B ---- B
Я бы взял последние изменения из А прямо в С.