the Typesafe config (https://github.com/typesafehub/config) that I use has a similar problem - there you can “reset” the config value before assigning a new value to it in order to avoid the deep merge, e.g. reference.conf
db = {
backend = sql
conn = {
host = <http://host.com|host.com>
}
}
application.conf (only on dev classpath)
db = reset
db = { backend = mem }
reset
isn’t a special keyword - it’s a workaround which changes the type of db
from Map to String 🙂