Реинтегрируйте ветку и объедините ряд изменений
В подрывной работе я сделал ветку, теперь я хочу объединить ее обратно в багажник. Какой вариант использовать?
Реинтегрируйте ветвь
или
объединить диапазон версий
Я использовал Merge ряд изменений, но я получал всевозможные ошибки конфликтов деревьев. Любая идея, какая разница между этими двумя?
Ответы
Ответ 1
При работе с веткой вы должны периодически объединять диапазоны ревизий от магистрали в ветку до синхронизировать ветвь. если вы не передадите номера версий в svn merge и ваша версия сервера svn равна 1,5 или новее, она будет отслеживать ранее выполненные слияния и автоматически слить только новые версии.
Когда ветка закончена, вы должны объединить изменения в нее в последний раз, затем снова включить ее обратно в соединительную линию.
Ответ 2
Вот шаги, которые я обычно выполняю для слияния.
1.
svn log -v --stop-on-copy http://mysvnrepo/mybranch
Это даст вам ревизию репо, когда вы впервые создали ветвь.
Скажем, это AAAA.
2.
svn log -v -rAAAA: HEAD http://myrepo/trunk
Это даст вам изменения, сделанные в багажнике после того, как вы извлекли ветку. Это не существенно, но я использую это, чтобы понять, что я должен ожидать в настоящее время.
3.
В случае step2. сообщите об изменениях соединительных линий, перейдите в рабочую область ветки и запустите
svn merge --dry-run -rAAAA: HEAD http://myrepo/trunk.
Это сообщит обо всех изменениях, сделанных в trunk с тех пор, как вы разветвляетесь в mybranch - просмотрите и запустите команду без опции -dry-run для выполнения фактического слияния.
4.
Зафиксировать рабочее пространство ветвления после слияния с соответствующим комментарием. (например, "Объединенные изменения от версии транка с AAAA до XXXX" - где XXXX - текущая версия HEAD). Это вызывает HEAD, чтобы сказать версию YYYY.
5.
Далее в рабочей области соединительной линии введите
svn merge --dry-run -rAAAA: HEAD http://myrepo/branch.
Это должно сообщать об изменениях, произошедших в филиале после его создания до сих пор.
Просмотрите отчет, чтобы проверить, что происходит слиянием/конфликтом и т.д., А затем выполните команду без опции -dry-run, чтобы фактически выполнить слияние.
6.
Разрешить конфликты, если они есть, вручную, запустить svn, чтобы сообщить репо, что все конфликты все разрешены, а затем выполнить коммит с соответствующим сообщением, например "Слияние с mybranch to trunk - изменения, включенные в ревизию AAAA через YYYY". Это помогает при следующем запуске журнала, а затем вы можете просто выполнить следующее слияние с YYYY на HEAD в этот момент.
Ответ 3
Объяснение черепах SVN и Объяснение реинтеграции:
Документация TortoiseSVN