And some low level implementation

This is untested (mostly), but seems plausible.

Note that Subversion just ignores our commit message/file. because its
"muddle commit" does nothing at all, with no warning - this is probably
not a good idea.