I just wonder how do you deal with this scenario. Let's say you have an application that uses configuration files that are loaded right after the application starts. Configuration files store - lets say 100 - configuration parameters. For all clients the application uses the same parameters except one (let it be one file named circuit.cfg), so for clients A and B the difference is in just one configuration file.
If the application is under GIT control how do you handle differences (different files) of such file for all clients?
My guesses are:
- keep different branches (develop-client-a, develop-client-b) all up to date to develop which stores some version of circuit.cfg and when application is deployed for client a it is done from develop-client-a branch,
- store circuit-client-a.cfg and circuit-client-b.cfg in develop branch
I think that 2) is a little bit harder to maintain since you need to have knowledge somewhere which of the configuration files have to be chosen when deploying for particular client.
On the other hand having multiple branches can be a problem for CI server if the configuration of it is that you always make a release from develop branch (but it can probably be customized if such scenario exists).
Do you have any suggestions for this? How do you deal with it?