2008-10-06 4 views
26

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

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

  1. Merge из Basepoint в LatestTrunk (Ствол, скорее всего, перешли с исходной ветви) в рабочую копию отделения, а затем совершить.

    На данный момент мы, как правило проверить, что слияние в филиал не повредил что-нибудь

  2. Merge от LatestTrunk к LatestBranch обратно в рабочую копию ствола, а затем совершить.

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

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

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

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

ответ

28

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

The SVN book объясняет процесс слияния, как:

  1. SVN слияния http://trunk/path в то время как в филиале рабочей копии
  2. SVN слияния --reintegrate http://branch/path в то время как в багажнике рабочей копии

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

+0

+1 для отличной ссылки на книгу SVN! – Twisted 2011-07-08 13:06:56

2

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

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

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

2

Хорошее сообщение в блоге о слиянии проблем в svn (и то, что реинтегрирует) - here.

 Смежные вопросы

  • Нет связанных вопросов^_^