Revision properties are unversioned that's well documented. There are two hooks associated with a revprop change, the pre-revprop-change and the post-revprop-change. What's not well documented is that these hooks and the change are not executed within a Subversion transaction, which means that the ACTION parameter passed to the hooks is not reliable. The example pre-revprop-change hook created with every repository includes:
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi which could lead one to believe that ACTION is reliable. At the very least that's a documentation bug, but is it a code bug as well? Is there any point in providing ACTION if it is not reliable? Should we run the pre-revprop-change and the change itself in a Subversion transaction? Something like: Process 1 Process 2 --------- --------- start txn get old value run pre-revprop-change start txn get old value run pre-revprop-change change-value commit txn run post-revprop-change change value fail to commit txn return error return success -- Philip