Слияние ветки с стволом
Используя TortoiseSVN, мне нужно принять изменения, которые я сделал в ветке, а затем объединить их с транком.
Я единственный разработчик в этом проекте, поэтому я знаю, что ствол не изменился. Я изучаю SVN, чтобы в конечном итоге моя команда могла его использовать.
По сути, я хочу, чтобы мой ствол выглядел точно так же, как ветвь.
В мире, предшествующем svn, я просто копировал файлы в своей папке ветки, удалял файлы в папке ствола, а затем копировал ветку в ствол.
В TortoiseSVN я попытался Reintegrate a branch
, Merge a range of revisions
и Merge two different trees
. Кажется, ничего не меняет багажник. Я также попытался разветвляться на верхней части ствола. Это дает мне ошибку, говоря, что ствол уже существует.
Ответы
Ответ 1
В вашем случае:
- Переключите рабочую копию на соединительную линию (SVN Switch)
- Объединить ветвь в рабочую копию (SVN Merge)
- Убедитесь, что все еще компилируется и работает
- Зафиксировать рабочую копию (соединительную линию)
- Рассмотрите возможность уничтожения ветки
В командной среде я бы предположил, что сначала вы слейте последние изменения из сундука в своем филиале, убедитесь, что все скомпилировано и работает, затем выполните описанные выше действия (что будет тривиально с вы уже протестировали изменения).
Обновление
На шаге 5 я упоминаю об убийстве ветки. Это потому, что, когда ветка от объекта находится в багажнике, его следует рассматривать как часть ствола. В этом случае ветвь должна быть убита, чтобы никто не работал над ней. Если для этой функции необходимы основные изменения, для этого вам нужно создать новую ветку.
Единственными ветвями, которые я не убиваю, являются ветки обслуживания и выпуска, если конкретная версия больше не поддерживается.
Независимо от того, у вас всегда есть доступ к каждой ревизии, поэтому уничтожение ветки используется только для предотвращения разработки другими разработчиками на мертвой ветке.
Ответ 2
Я думаю, что в TortoiseSVN 1.8.5, Merge | Слияние двух разных деревьев должно работать. Когда вы объединяете ветку/тег обратно в магистраль, трюк заключается в том, что URL-адрес From - это соединительная линия, а To - это тег/ветвь. Странно, но верно.
Источник: Объединение
Для каталогов, которые не находятся в вашей рабочей копии, но находятся в теге/ветки, могут возникнуть конфликты. Просто примите конфликт и повторите слияние.
Ответ 3
Сначала переключите рабочую копию на багажник.
Затем сделайте диапазон слияния ревизий, от ветки до ствола.
Как только это диалоговое окно будет завершено, различия будут в ожидании изменений в вашей рабочей копии туловища. Вам нужно будет зафиксировать их так же, как если бы вы вручную внесли изменения в свою рабочую копию.
В моем использовании, более типичным для того, чтобы поддерживать ствол и откручивать ветки во время сборки. Итак, единственное слияние, которое мне когда-либо нужно сделать, - это получить исправление ошибки из сундука и поместить его в последнюю ветвь сборки и переиздать эту ветку. Самый простой способ для меня сделать это, поскольку, как вы нашли, слияние в лучшем случае неудобно. Является ли последняя ветка и багажник проверена на моей машине и достаточно буквально скопировать файлы из ствола в ветку и проверить оба.
Ответ 4
Я использую TortoiseSVN 1.9.3, Build 27038.
Следуйте инструкциям ниже, чтобы объединить ветвь в магистраль.
1) Щелкните правой кнопкой мыши на рабочей копии соединительной линии и выберите вариант ниже.
![введите описание изображения здесь]()
2) В случае разделения ветки на выбор внешней линии, как показано ниже, и нажмите кнопку
![введите описание изображения здесь]()
3) В поле From: введите полный URL-адрес папки соединительной линии. Это может звучать неправильно, но помните, что соединительная линия является начальной точкой, к которой вы хотите добавить изменения ветки.
В поле Кому: введите полный URL-адрес папок для ветки функции.
![введите описание изображения здесь]()
4) Нажмите "Далее" и выполните тестовое слияние
![введите описание изображения здесь]()
5) Если тестовое слияние выполнено успешно, нажмите кнопку "Слияние".
6) После того как слияние выполнено успешно, выполните фиксацию изменений в соединительной линии.