Обычно при реинтеграции ветки SVN в магистраль мы создаем такую историю:
trunk A---B---D---F---H
\ \ /
branch C---E---G---X
где G
— слияние, H
— реинтеграционное слияние, а X
удаление функциональной ветви. Я также понимаю, что есть разница в алгоритме слияния, который SVN использует для G
и H
. Все идет нормально.
Однако меня беспокоит одна вещь: Этот ответ цитирует документацию SVN о том, что происходит с реинтеграционным слиянием, как: "И на самом деле , он делает это, сравнивая последнее дерево стволов с последним деревом ветвей: результирующая разница — это именно изменения вашей ветки!»
Начиная с trunc + changes from branch = trunc + (branch - trunk) = branch
, я делаю вывод, что записанное состояние после реинтеграционного слияния всегда точно такое же, как записанное состояние в конце ветки.
Теперь рассмотрим эту историю:
trunk A---B---D---F---H---I
\ \ /
branch C---E-----G-----X
Исходя из приведенных выше рассуждений, я бы предположил, что изменения из коммита H просто теряются, если I
является реинтеграционным слиянием. Это правильно, или я что-то пропустил?