Home > Software engineering >  How should i version control a software that has multiple variants for multiple customers?
How should i version control a software that has multiple variants for multiple customers?

Time:02-19

I use master branch as production, and dev as development, as protected branches, and use topic branches to develop the codebase, but if a new customer comes up with unique ideas, should i start customer specific protected branches (master and dev), or whole new remote project for them?

Edit: To be more accurate, i mean the variants are strictly individual. So i have the base software A, variant B and variant C, these 3 variants only shares the A codebase, modifies B and C are 100% distinct, have different versions as well. In the future i may have to set up even more variants.

CodePudding user response:

these 3 variants only shares the A codebase, modifies B and C are 100% distinct, have different versions as well

Then yes, they need their own integration branches (branches where you merge multiple topic branch to make a new release).

Their merge workflow lifecycle will be independent from software A, and they need their own production maintenance.


The alternative is to use GitLab Feature flags, based on Unleash, to maintain a unique software with the ability to toggle a feature on and off to subsets of users.
Then you would maintain a unique software, but that seems more complex.

  • Related