Does SilverStripe have the ability to easily roll out configuration which varies by named environment which can still be committed to the repository? For example, I understand that I have the ability to define constants in _ss_environment.php. The problem there is that it is pretty inflexible and requires more maintenance than simply committing directly to a file which will be immediately available upon deploy, e.g. conf/widget.php and conf/test/widget.php and conf/dev/widget.php which would expose configuration parameters such as "widget.foo" which would vary between prod, test and dev automatically. Another major advantage to this approach is the ability to provide arrays (since constants can only evaluate to scalar types) as well as even closures.
Thoughts? Would SS be open to this sort of internal improvement for v4? Or, better yet, is there already a module already available that provides this sort of functionality? I'd like us to consider using the uncommitted code strictly for things that don't belong in the repository (like credentials). I couldn't find much here about committed per-environment configuration.