Author: philip
Date: Wed Nov 27 16:39:48 2013
New Revision: 1546100
URL: http://svn.apache.org/r1546100
Log:
* subversion/libsvn_fs_fs/transaction.c
(commit_body): Note a couple of problems that can occur if the
commit is interrupted.
Modified:
subversion/trunk/subversion/libsvn_fs_fs/transaction.c
Modified: subversion/trunk/subversion/libsvn_fs_fs/transaction.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/transaction.c?rev=1546100&r1=1546099&r2=1546100&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/transaction.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/transaction.c Wed Nov 27 16:39:48
2013
@@ -3158,7 +3158,11 @@ commit_body(void *baton, apr_pool_t *poo
race with another caller writing to the prototype revision file
before we commit it. */
- /* Remove any temporary txn props representing 'flags'. */
+ /* Remove any temporary txn props representing 'flags'.
+
+ ### This is a permanent change to the transaction. If this
+ ### commit does not complete for any reason the transaction will
+ ### still exist but will have lost these properties. */
SVN_ERR(svn_fs_fs__txn_proplist(&txnprops, cb->txn, pool));
txnprop_list = apr_array_make(pool, 3, sizeof(svn_prop_t));
prop.value = NULL;
@@ -3215,7 +3219,11 @@ commit_body(void *baton, apr_pool_t *poo
}
}
- /* Move the finished rev file into place. */
+ /* Move the finished rev file into place.
+
+ ### This "breaks" the transaction by removing the protorev file
+ ### but the revision is not yet complete. If this commit does
+ ### not complete for any reason the transaction will be lost. */
old_rev_filename = svn_fs_fs__path_rev_absolute(cb->fs, old_rev, pool);
rev_filename = svn_fs_fs__path_rev(cb->fs, new_rev, pool);
proto_filename = svn_fs_fs__path_txn_proto_rev(cb->fs, txn_id, pool);