Reputation: 836
In my company, we have a requirement to deploy whenever a feature branch is ready to go live - no waiting around. For this purpose, I've came up with with this dev/gitflow process:
The process will work like so:
dev
by merging into it. It is like staging, but QA doesn't touch this environment.staging
branch and issue a Pull Request into the release
branch. [Green line #1]staging
branch, the staging server automatically gets updated and QA tests on it. [Green line #2]release
branch. [Dotted green line]release
branch gets a change, we merge it into the master
(Production) branch and do a deploy.production
back into staging
and dev
? [Red lines] My concern is that this process would cause a lot of code conflicts when merging production
back downward. Especially if we have stuff on staging that is being moved around from QA -> dev -> QA over and over.
Upvotes: 1
Views: 1736
Reputation: 106470
There's a lot of noise in this flow and my concern is that it's overcomplicating what Git Flow nominally accomplishes. My advice in general is to simplify this flow as much as possible - if you need a separate "staging" branch then create it - but in general:
Given that the likelihood of occurrence of multiple feature branches being ready at exactly the same time is rare, simplifying the release cycle in this fashion so that no ambiguity exists with QA (in that it's only ever testing the one feature branch at a time) would simplify things a lot.
Upvotes: 1