Ryan J Ollos wrote on Sat, Apr 23, 2016 at 14:23:37 -0700:
> For a long time I've known the rule "don't modify a transaction in a
> pre-commit hook", documented in (1) and recently repeated in (2).
>
> I was therefore surprised to read about the "svnadmin setrevprop" command
> (3) in 1.9, and to see an example of modifying transaction properties in
> the hook-scripts: "persist-ephemeral-txnprops.py" (4).
>
> Are there some conditions under which it's okay to modify the transaction,
> or are there only specific use-cases when this should be done?
Modifying transaction/revision properties is fine, since they are
mutable data that may change at any time after the commit: the
committing client's worldview will be as though somebody edited the
revprop immediately after its commit went through.
For everything else (text, property, and tree modifications), the client
assumes that what it submitted is what is stored in the repository in
the revision the commit created [that revision's number is reported to
the client], so if the hooks break that assumption, the committing
client may have a broken worldview.
Cheers,
Daniel
Received on 2016-04-23 23:48:41 CEST