Подтвердить что ты не робот

Как использовать новое отслеживание слияний SVN?

В моей существующей стратегии слияния (Pre-SVN 1.5) мы создаем копию Trunk (называемую BasePoint) в момент создания ветки для ссылки позже во время слияния.

Когда нам нужно объединить ветвь обратно в магистраль, мы выполняем 2 операции.

  • Слияние с BasePoint на LastTrunk (вероятно, с помощью исходной ветки соединительной линии) в рабочую копию ветки, а затем фиксацию.

    В этот момент мы обычно проверяем, что слияние в ветку ничего не повредило

  • Слияние с LastTrunk на LastBranch обратно в рабочую копию соединительной линии, а затем фиксацию.

Документация предполагает, что я использую новое объединение реинтеграции в Trunk и Merge из Branch.

Нужно ли мне сначала объединиться из соединительной линии в ветку dev или это включено в новый параметр реинтеграции?

Иными словами, добавляет ли новая функциональность merge --reintegrate "каждый из моих предыдущих слияний" или "вся операция"?

(FWIW Я использую TortoiseSVN 1.5.1)

4b9b3361

Ответ 1

Короткий ответ: Вам все равно нужно выполнить оба действия.

В книге SVN объясняется процесс слияния как:

  • svn merge http://trunk/path, пока в рабочей ветке
  • svn merge --reintegrate http://branch/path, пока в рабочей копии соединительной линии

Обратите внимание на отсутствие номеров ревизий. Это, вероятно, не кажется огромной победой. Новая прохлада - это возможность повторного запуска слияния по мере того, как вы кодируете в своем филиале, что позволяет поддерживать ветку в актуальном состоянии с изменениями в магистрали (без записи номеров ревизий вручную!). SVN отслеживает, что нужно объединить из магистрали и какие изменения уникальны для отрасли. Когда вы закончите работу с веткой, --reintegrate использует эти данные для автоматического слияния только изменений ветвей обратно в магистраль.

Ответ 2

Я считаю, что реинтеграция фактически не выполняет две операции, а вместо этого используется для объединения обратно в магистраль из обновленной ветки. Вам все равно необходимо выполнить первый набор операций слияния/фиксации, чтобы сначала обновить ветвь.

Вот ссылка на Subversion Book. Можно получить эту книгу в формате мертвого дерева.

Из ссылки, похоже, что использование --reintegrate обрабатывает некоторые странные случаи, вероятно, похоже, что слияние обычно сравнивается с просто использованием прямых патчей (читайте раздел "Почему бы не использовать патчи вместо этого?" ).

Ответ 3

Хорошее сообщение в блоге о слиянии проблем в svn (и то, что происходит с реинтеграцией) здесь.