> The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally; and unlike custom config files, or other config mechanisms such as Java System Properties, they are a language- and OS-agnostic standard
This is just silly... you have to store your configs somewhere, and setting env vars is not OS agnostic.
Assuming you're not using something like Zookeeper, you do want track your config files in your revision control, just separate from the app. Implement an override system so your app loads the env specific settings from a standard override location (e.g. Java /opt/overrides/myapp.properties). If you use env vars or property files doesn't matter as much as being consistent and that you're not creating more complexity to just to make things simple.