My company has a piece of software we sell to multiple customers. But every customer have some different requirements (more than just \"Put our logo here\"). The core i
I think a simple and viable solution might be to have develop
and release
branches for every customer.
Edit: previously develop
was called master
in the sentence before, but I like develop better
develop
branchdevelop
and release
branchesYou would have to take extra care to make changes that affect all customers in the shared develop
and changes that only affect specific customers only on their respective branches.
You develop feature A for customer A, and feature B for customer B.
If those features do not share code they should be kept in the respective develop-*
branches, e.g. feature A will be developed in develop-customer-A
and feature B in develop-customer-B
If those features share code the shared part should be developed on the shared develop
and the parts specific to the customers in their respective branches develop-*