2015-06-03 3 views
1

Насколько я понимаю GIT wokflow описывается следующим образом: http://nvie.com/posts/a-successful-git-branching-model/Работа со старыми выпусками в Git Workflow

У меня есть вопрос, связанный со старыми ветвями в этом устранении ошибок рабочего процесса.

Учитывая, что у нас есть много старых ветвей выпуска, объединенных в основную ветвь. Наш последний релиз был выпущен 2.6. Нам нужно исправить ошибку, найденную в какой-то старой ветке релиза, скажем, 1.5. Мы создаем ветку из основного состояния ветви, связанную с выпуском 1.5, исправляем ее, развертываем и все в порядке. Но теперь остается вопрос: как мы можем STORE и ПРОПАГАТЬ это изменение ко всем более новым версиям?

Мы не можем просто объединить это исправление в мастер. Например, класс, который мы фиксировали, может быть удален, например, в версии 2.3. Его просто не может быть в головке ведущей ветки.

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

Похоже, что после исправления ВСЕ следующие коммиты главной ветки устарели и не могут использоваться. И если у нас есть некоторая ошибка в версии 1.9, тогда единственный вариант, который у нас есть, - это сделать ветку от 1.9 commit от master, слить ее как-то с этим исправлением 1.5 и продолжить тогда.

Правильно ли я понимаю?

ответ

1

Указанный рабочий поток не включает упомянутый вами случай. Если старый класс не существует в более новых версиях, это означает, что ошибка может даже не существовать, поэтому исправление не должно распространяться на новые выпуски. Также вам не нужно объединять его с основной историей, так как мастер представляет текущее состояние продукта (в руке клиента), что намного опережает выпуск. Имейте в виду, что изменение истории любого старого узла изменит всю цепочку истории следующих узлов.

Для решения этой проблемы лучше создать новую ветку, называемую, например, «Support-1.5», которая содержит обновления, связанные с поддержкой этой конкретной старой версии продукта, объединить связанные с ней исправления и эта ветвь поддержки работает до тех пор, пока поддерживается эта старая версия продукта.

Надеюсь, это поможет.

+0

Спасибо, unixer! Но говоря о вашем решении, то почему сохранить состояние продукта в главной ветке, если самое первое исправление делает его устаревшим? .. Тогда, вероятно, хорошая идея - разделить все ветви релиза и не объединять их в одну ветвь , – MiamiBeach

+0

У вас есть выбор, чтобы работать так, чтобы думать более продуктивно и иметь лучший контроль версий. git настолько гибкий. – najjarammar

Смежные вопросы