Рассмотрим следующую ситуацию:Как объединить BUG FIX ветку в ствол и освободить ветвь
- Развитие в основном делается в багажнике.
- Филиалы используются при исправлении сложных ошибок или разработке новых (нестабильных) функций.
Обычно эти ветви затем сливаются в багажник после завершения разработки. - 1 ветвь используется как текущая релизная ветвь (например, в настоящее время «R-1.0»).
- Метки используются для выпуска (будет «R-1.0.0»).
Теперь сложная ошибка, которая находится в багажнике, а также в текущих 1.0.0 релизе должен быть исправлен:
- филиала «BG-1» из ствола будет создан.
- Ошибка будет исправлена в этой ветке.
В то же время развитие будет продолжаться в багажнике.
Как вы продолжаете реинтегрировать ветку в багажник и «R-1.0» сейчас?
- Объединить багажник в «BG1», затем перевести «BG1» в багажник, а затем в «R-1.0».
=> Это не может быть решением, так как «R-1.0» получит все, что было разработано в багажнике с момента выпуска 1.0, что не является целью. - Попробуйте реинтегрировать «BG1» в багажник, а затем в «R-1.0», не сливая багажник.
=> Это также не может работать, поскольку другие изменения, которые не были частью релиза 1.0, уже являются частью ветви «BG1».
Есть ли какие-либо решения этой проблемы?
Единственное решение, которое я вижу, - это запустить «BG1» из «R-1.0», а не в багажник. Если да, значит ли это, что для каждой ветви исправления ошибок разработчик должен найти самую старую поддерживаемую версию, содержащую ошибку и ветвь из этой ветви релиза?
Update:
Практика делает все развитие и из ствола возник из this answer by "Jim T", которая является концепция мне очень нравится.
[+1] Я провел несколько тестов и получил тот же результат, что и вы. Кажется, проще всего интегрировать BG1 в магистраль, а затем объединить только эту ревизию в R-1.0. Позвольте мне посмотреть, придут ли другие предложения, если нет, я приму ваш ответ. – Marc