Branching Strategy – Avoiding Multiple Release Branches for Different Customers

branchingversion control

I am currently thinking of the following branching strategy

  1. Main branch
  2. Development branch
  3. Feature branch
  4. Release branch

Basically the whole idea is to have a release branch so that hot fix can be applied quickly for specific release.

Here is the issue what if I have an urgent feature that I need to do for a specific customer and I do not want those feature to be applied to other customer using the same release version until it is fully tested. At the same time I do not wish to create multiple release branches for different customers as this will complicate stuff.

What is the best way to handle such situation?

Best Answer

If it concerns a feature that will be delivered to all customers once it has been fully tested, and this one customer takes up part of the testing effort, then it is best to use a second release branch for the testing of this feature. After the feature has been found to be stable enough, the second release branch can be merged into the official release branch.

If the feature will not be used by all customers, then it is better to use a feature toggle, as outlined in the answer by @aquaranga.

Related Topic