I had a brief discussion with David about some of the reload issues this week at the d.o sprint here in Portland. Our talk was centered around the whole issue of 'what happens when something on prod has been overridden since last reload' but it is possible that it might help in the other issues as well.
Basically the idea is that whenever we reload config, we take that a snapshot of that config and save it away somewhere else. What this gives us at any point in time is the following:
1) The config in the files
2) The config in the active store
3) The config that was last reloaded
This means we can actually determine not only that the active store has drifted since last reload, but also in what way it has drifted. It allows us a little more detail too. If I change a setting on prod, then decide to revert it, the active store is still the same as the last reload even though it was at some point modified. We couldn't know this with the simple flag solution. This offers the opportunity for contrib to do some really cool 3-way diff stuff to determine how and where config has changed. While this does add some complexity to our solution, I really like it a lot.
PASSED: [[SimpleTest]]: [MySQL] 50,560 pass(es). View
PASSED: [[SimpleTest]]: [MySQL] 50,460 pass(es). View