Как реинтегрировать ветку, перезаписывая изменения ствола, которые не были объединены в ветку? - PullRequest
2 голосов
/ 28 февраля 2012

Последние шесть месяцев мы работали над веткой функций.Большинство коммитов, выполненных за транк в этот период, были добавлены в ветку, но некоторые коммиты за транк преднамеренно никогда не были объединены с веткой.

Теперь ветвь завершена, и мы в основном хотим «заменить» транк наветвь (нам не нужны изменения соединительных линий, которые больше не были объединены с веткой). Этот ответ на симуляционный вопрос предполагает :

  1. Проверьте версию ствола, из которой вы создали ветвь (не версию HEAD).
  2. Зафиксируйте его в хранилище (это отменяет все последующие изменения транка).
  3. Выполните реинтеграцию-слияние (ваша рабочая копия ствола теперь должна быть идентична ветви.)
  4. Зафиксируйте объединенную линию, и все готово!

Этот ответ предполагает :

svn co http://svnhost/trunk
cd trunk
svn merge http://svnhost/trunk http://svnhost/branches/branchname

Каким будет правильное решение в моем случае?

1 Ответ

5 голосов
/ 28 февраля 2012

Если вы действительно хотите заменить свой ствол, вы можете использовать обозреватель хранилища (TortoiseSVN) и выполнить следующие действия:

  • Удалить сундук
  • Используйте «Копировать в», чтобы скопировать вашу ветку в «ствол»
  • Удалить ветку

Вы также можете переместить ветку в корень хранилища и переименовать ее в "trunk".

Если вы используете внешние объекты, которые указывают на ваш текущий транк, у вас может возникнуть проблема, если вы не использовали ревизию "peg" при ссылке на транк. Если вы не пользуетесь внешними устройствами, все будет в порядке.

...