> Deleting a > broken ref now actually tells the hooks the correct "before" state, > rather than a confusing null oid. I believe that this is due to write_head_info() in builtin/receive-pack.c now advertising the broken ref, so that the client knows what the old OID is when pushing in order to delete the ref (verified by running the relevant "git push" in the test with GIT_TRACE_PACKET=1, with and without GIT_REF_PARANOIA=0). If rerolling, maybe this is worth adding in parentheses (e.g. "(because such a ref would be advertised to the client and the client would thus send the "before" OID when deleting it)"). All the patches up to this look good.