The approach discussed on the article seems to take into account only one possibility: you deploy master in prod, and it's always considered correct. That works for small projects, but in my experience, when you have a bunch of people (let's say 20) pushing code to a repo, you need several levels of "correctness" - branches: Work in progress. - develop: Code ready to share with others. It can break the build (merge c…
This can become very problematic. For example: Team is working on feature A and feature B. Each feature is developed on its own branch. Feature A is ready for testing/integration, it is merged into develop. Feature B is ready, it is merged into develop. Now here is the problem: Feature B is ready for release, but feature A is not. It is now not possible to merge develop into master without including both features. Th…
Let's say next release is Release-1.10
1. We merge Feature A and Feature B to it.
2. Feature A is tested and ready to be deployed. Feature B is not.
3. You either revert Feature B commit OR re-create the release branch with only Feature A.
4. Deploy the release branch.
5. Merge the release branch in to master.
This is exactly what we do at my current workplace where we have 4 developers working on changes with different release schedule.