After IRC conversation between myself, brane, markphip, stsp, danielsh, and (to a less degree) julianf, I think I have a clear path forward on this now. The general sentiments are:
* that 'start-commit' is today useful for making a repository "truly read-only" (as in, not modifiable at all) is an undocumented side-effect, but one that we suspect folks aren't relying /precisely/ on. * rather, the use-cases we were collectively aware of involved ensuring that the repository could be simply put into a state where no new revisions are created, and no existing revprops are modified. * changing 'start-commit' to be invoked after txn creation and txnprop population, and to receive the txn-id as a new final arg, would: - allow existing start-commit hooks to continue to provide the don't-allow-any-new-revisions behavior, and - allow hook authors to create/amend their start-commit hooks to examine txnprops and potentially offer the early detection of commits destined to fail that we've been talking about. * besides, philip's freeze/unfreeze offers a far more logical way to get honest-to-goodness-read-only-ness. So, based on the above, the my new plan of action is as follows: 1. Revert the addition of the 'init-commit' hook script feature. 2. Change 'start-commit' to run after txn creation and txnprop population (literally, like, moving a function call down two or three lines). 3. Add the txn-id argument to the end of the 'start-commit' arg list. Bert asked the question of what would trigger the new start-commit behavior -- upgrade to 1.8? A format bump for the repository? Personally, I lean towards just the 1.8 upgrade. I don't feel like this only justifies a format bump for the repository. That said, if Philip's freeze/unfreeze brings in a format bump, I'm happy to tie this start-commit change to that bump, too. -- C. Michael Pilato <cmpil...@collab.net> CollabNet <> www.collab.net <> Enterprise Cloud Development
signature.asc
Description: OpenPGP digital signature