[+1] Я провел несколько тестов и получил тот же результат, что и вы. Кажется, проще всего интегрировать BG1 в транк, а затем объединить только эту версию с R-1.0. Дайте мне посмотреть, если появятся другие предложения, если нет, я приму ваш ответ.

отрим следующую ситуацию:

Разработка в основном ведется в багажнике.Ветви используются при исправлении сложных ошибок или разработке новых (сначала нестабильных) функций.
Обычно эти ветви объединяются в магистраль после завершения разработки.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», а не с магистрали. Если так, значит ли это, что для каждой ветви исправления ошибок разработчик должен найти самый старый поддерживаемый выпуск, который содержит ошибку и ответвление из этой ветви выпуска?

Обновить:
Практика выполнения всех разработок в и из ствола возникла изэтот ответ "Джим Т" это концепция, которая мне действительно нравится.

Ответы на вопрос(1)

Ваш ответ на вопрос