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