Стратегия SVN с использованием веток и слияние изменений из магистрали в ветку

Так долго пользовался SVN, но довольно неопытен в ветвлении / маркировке, и когда я подозреваю, я не совсем правильно его использую или использую в полной мере.

У меня есть свой ствол, который я работаю над добавлением новых функций и т. Д. Эта база кода используется на нескольких веб-сайтах, где мы создаем ответвления от ствола для каждого проекта.

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

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

Итак, мой вопрос... есть ли способ обновить мою ветку ВСЕМИ изменениями из ствола и обрабатывать их, как если бы это было стандартное обновление ствола с конфликтами?

Я видел реинтеграцию ветки в ствол, но из-за того, как я использую ветки в этом случае, это не совсем то, что я хочу сделать.

1 ответ

Решение

Да, это возможно. В основном вам нужно запустить svn merge из чистой рабочей копии вашей ветки (без локальной модификации):

$ pwd
/home/user/mybranch
$ svn status # Does not display anything
$ svn update # Make sure your local copy is up to date.
Updating '.':
At revision X.
$ svn merge url/to/repository/trunk
Updates, additions, deletions and conflicts.
$ #handle conflicts.
$ svn commit -m "Merging changes from the trunk".

См. Раздел " Синхронизация ветви" из книги SVN.

Первое слияние может вызвать много конфликтов, особенно если ветвь разветвлена ​​давным-давно, но последующие слияния будут проходить гладко, особенно если вы часто сливаетесь.

Другие вопросы по тегам