Grammar, yadda, yadda
The code is lightly tested, but seems to work okay for me. This was a bit of code that I had put off writing for a few weeks as it was always going to be tricky to do right.
There's also code in the daemon now to log transactions to the database that have potentially changed things. This is the first chunk of code needed for the rollback support for some backends, and also allows us to find out "what was updated yesterday because now java doesn't work".
So basically what I'm trying to say is that there is lots of new code in git today, so expect it to break horribly. Please yell on the list if you find anything odd.