Как использовать новое отслеживание слияний SVN?
В моей существующей стратегии слияния (Pre-SVN 1.5) мы создаем копию Trunk (называемую BasePoint) в момент создания ветки для ссылки позже во время слияния.
Когда нам нужно объединить ветвь обратно в магистраль, мы выполняем 2 операции.
-
Слияние с BasePoint на LastTrunk (вероятно, с помощью исходной ветки соединительной линии) в рабочую копию ветки, а затем фиксацию.
В этот момент мы обычно проверяем, что слияние в ветку ничего не повредило
-
Слияние с LastTrunk на LastBranch обратно в рабочую копию соединительной линии, а затем фиксацию.
Документация предполагает, что я использую новое объединение реинтеграции в Trunk и Merge из Branch.
Нужно ли мне сначала объединиться из соединительной линии в ветку dev или это включено в новый параметр реинтеграции?
Иными словами, добавляет ли новая функциональность merge --reintegrate
"каждый из моих предыдущих слияний" или "вся операция"?
(FWIW Я использую TortoiseSVN 1.5.1)
Ответы
Ответ 1
Короткий ответ: Вам все равно нужно выполнить оба действия.
В книге SVN объясняется процесс слияния как:
Обратите внимание на отсутствие номеров ревизий. Это, вероятно, не кажется огромной победой. Новая прохлада - это возможность повторного запуска слияния по мере того, как вы кодируете в своем филиале, что позволяет поддерживать ветку в актуальном состоянии с изменениями в магистрали (без записи номеров ревизий вручную!). SVN отслеживает, что нужно объединить из магистрали и какие изменения уникальны для отрасли. Когда вы закончите работу с веткой, --reintegrate использует эти данные для автоматического слияния только изменений ветвей обратно в магистраль.
Ответ 2
Я считаю, что реинтеграция фактически не выполняет две операции, а вместо этого используется для объединения обратно в магистраль из обновленной ветки. Вам все равно необходимо выполнить первый набор операций слияния/фиксации, чтобы сначала обновить ветвь.
Вот ссылка на Subversion Book. Можно получить эту книгу в формате мертвого дерева.
Из ссылки, похоже, что использование --reintegrate обрабатывает некоторые странные случаи, вероятно, похоже, что слияние обычно сравнивается с просто использованием прямых патчей (читайте раздел "Почему бы не использовать патчи вместо этого?" ).
Ответ 3
Хорошее сообщение в блоге о слиянии проблем в svn (и то, что происходит с реинтеграцией) здесь.