Мы пытаемся адаптировать Skullcandy git поток - ссылка
Вкратце поток:
- Ветвь функции переименована из главной
- После завершения работы над функцией код перебазируется / объединяется с веткой QA, где он может быть дополнительно протестирован при необходимости (здесь создается запрос на вытягивание и выполняется проверка кода)
- После завершения тестов мы перебазировать / объединить функциональную ветку для управления с помощью другого запроса на вытягивание
Теперь у нас есть проблемы как с слиянием, так и с перебазированием при использовании этого подхода.
Подход с перебазированием:
- Мы создаем PR для QA и мастер (1 дополнительная фиксация)
- Мы завершаем PR в QA, используя перебазирование вперед
- После того, как PR в QA завершается внезапно PR to master может показать дополнительные коммиты, которых там раньше не было. Если бы я удалил ветку из источника и pu sh ее снова из локального репозитория и создал новый PR для управления, он снова правильно показывает 1 дополнительную фиксацию
Я не уверен, почему это происходит. Похоже, история коммитов функциональных веток почти переписана. Я также не уверен, что этот подход вообще возможен, поскольку rebase может создавать новые коммиты SHA, чтобы их можно было отображать как изменения.
Подход слияния:
- Мы создаем PR для QA и мастер (1 дополнительный коммит)
- Мы завершаем PR для QA и мастер с помощью слияния
- Проблема, которая возникает здесь, заключается в том, что поскольку слияние создало один дополнительный коммит слияния после того, как мы выполнить повторный переход от мастера для новой функции и создать новый PR для QA, он показывает слияние фиксации от мастера как изменение. Он также показывает все изменения, сделанные в этой фиксации слияния, на панели обзора кода, что является проблемным. ветки?
Сводка
Можете ли вы помочь мне понять, почему rebase ведет себя именно так?
Есть ли какие-нибудь предложения относительно того, как мы можем улучшить наш поток?
Мы бы предпочли только основной поток, но для этого нам потребуются автоматически сгенерированные тестовые среды для автоматических тестов, а мы еще не достигли этого:)