Ветви параллельной версии, которые должны быть синхронизированы и интегрированы в магистраль

#svn

#svn

Вопрос:

Мне нужно запустить ветку (бета), основанную на другой ветке (альфа), вы можете видеть это как бета-версию, основанную на альфа-версии. Эти две ветви в конечном итоге будут объединены с магистралью, сначала альфа-ветвью, а затем бета-ветвью.

Вариант 1: Создайте альфа-ветвь из магистрали, а затем создайте бета-ветвь из alpha. Бета-версия будет периодически обновляться наборами изменений из alpha, поскольку бета-версия должна содержать все функциональные возможности из alpha (пункты 1 и 2).

 /----бета---/(1)---/(2)----- бета-------
 / / / 
 /------------ альфа--/------/--- 
 /  
------------магистраль---------------------------------------------->

Вариант 2: создайте альфа-версию из магистрали, а затем бета-версию из магистрали. Обновите бета-версию с изменениями альфа-версии, чтобы обе версии имели одинаковую функциональность (пункт 3). После этого бета-версия будет периодически обновляться наборами изменений из alpha, потому что бета-версия должна содержать все функциональные возможности из alpha (пункты 4 и 5).

 /--/(3)--бета----/(4)--/(5)---- бета-----
 / / / / 
 /-------o--/--alpha------/-----/--- 
 / /  
----------------магистраль------------------------------------------->

Обе ветви будут объединены обратно в магистраль.

Какой вариант лучше?

Ответ №1:

Вариант 1, поскольку он устраняет ненужное в этом случае слияние с альфа-версии на бета-версию при запуске, а физический путь соотносится с логическим

Комментарии:

1. Не возникнет проблем при интеграции «beta» с магистралью, потому что «beta» начинается с «alpha» вместо «trunk»?

2. Не создаст никаких проблем на любом пути повторной интеграции — поскольку SVN обнаружит изменения между листами, история имеет (почти) нулевое значение для этого задания

3. Таким образом, SVN выполнит слияние, просто игнорируя родословную, например, применив патч. Я все еще обеспокоен конфликтами, которые могут возникнуть при слиянии «бета» через магистраль, потому что слияние «альфа» через магистраль ранее. SVN справляется с этим?

4. SVN будет использовать общего предка в качестве точки отсчета для двух ревизий. Предварительно примененные исправления обнаружены и не применены повторно (по крайней мере, в моих разных слияниях с CI)