Search code examples
svngitversion-controlcvs

How do you deal with configuration files in source control?


Let's say you have a typical web app and with a file configuration.whatever. Every developer working on the project will have one version for their dev boxes, there will be a dev, prod and stage versions. How do you deal with this in source control? Not check in this file at all, check it with different names or do something fancy altogether?


Solution

  • What I've done in the past is to have a default config file which is checked in to source control. Then, each developer has their own override config file which is excluded from source control. The app first loads the default, and then if the override file is present, loads that and uses any settings from the override in preference to the default file.

    In general, the smaller the override file the better, but it can always contain more settings for a developer with a very non-standard environment.