Как объединить ветку с исправлением ошибок в ствол и выпустить ветку - PullRequest
2 голосов
/ 08 февраля 2011

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

  • Разработка в основном выполняется в транке.
  • Ветви используются при исправлении сложных ошибок или разработке новых (сначала нестабильных) функций.
    Обычно эти ветви затем объединяются в транк после завершения разработки. Ветвь
  • 1 используется в качестве текущей ветки выпуска (скажем, в настоящее время "R-1.0").
  • Теги используются для выпуска (будет "R-1.0.0").

Теперь необходимо исправить сложную ошибку, которая находится как в транке, так и в текущем выпуске 1.0.0:

  1. Будет создана ветка "BG-1" из ствола.
  2. Ошибка будет исправлена ​​в этой ветке.
    В то же время развитие будет продолжено в стволе.

Как вы теперь продолжаете реинтегрировать ветку в транк и "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 Ответ

6 голосов
/ 08 февраля 2011

Я бы предложил объединить транк в BG1, а затем реинтегрировать BG1 в транк.Затем вы можете объединить ряд ревизий с R-1.0.Коммит, в котором вы реинтегрируете BG1 в транк, должен содержать только исправления ошибок, так что вы можете объединить это с R-1.0.Или вы можете объединить конкретные коммиты с BG1, который исправил вашу ошибку.

В зависимости от того, насколько изменился ствол после R-1.0, вам, возможно, придется вручную отредактировать R-1.0, прежде чем коммит применить, чтобы изменения применялисьстарый кодТакова природа сохранения старых версий.

...