Re the canrename, canremove, and canedit hooks:

Of the three, only canremove is currently checked during an untrusted
git push (a normal git push is assumed to be from a trusted user and
bypasses all checks).

It would probably make sense to add the canedit hook to the checks done
there. Calling the canrename hook is tricky, because after all, git does
not record explicit file moves.

The checkcontent hook is another hook not currently called there, that
probably should be.
