Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
refs: document transaction semantics
author
David Turner
<dturner@twopensource.com>
Thu, 25 Feb 2016 20:05:46 +0000
(15:05 -0500)
committer
Junio C Hamano
<gitster@pobox.com>
Thu, 25 Feb 2016 20:35:31 +0000
(12:35 -0800)
Add some comments on ref transaction semantics to refs.h
Signed-off-by: David Turner <dturner@twopensource.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.h
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
7548842
)
diff --git
a/refs.h
b/refs.h
index 7a040774890637253847e82e3ea3a90ac081f757..19ebebcce0e90586a44e903294ccd30599406c1f 100644
(file)
--- a/
refs.h
+++ b/
refs.h
@@
-109,6
+109,11
@@
extern int dwim_log(const char *str, int len, unsigned char *sha1, char **ref);
* If this succeeds, the ref updates will have taken place and
* the transaction cannot be rolled back.
*
* If this succeeds, the ref updates will have taken place and
* the transaction cannot be rolled back.
*
+ * - Instead of `ref_transaction_commit`, use
+ * `initial_ref_transaction_commit()` if the ref database is known
+ * to be empty (e.g. during clone). This is likely to be much
+ * faster.
+ *
* - At any time call `ref_transaction_free()` to discard the
* transaction and free associated resources. In particular,
* this rolls back the transaction if it has not been
* - At any time call `ref_transaction_free()` to discard the
* transaction and free associated resources. In particular,
* this rolls back the transaction if it has not been
@@
-124,6
+129,13
@@
extern int dwim_log(const char *str, int len, unsigned char *sha1, char **ref);
*
* The message is appended to err without first clearing err.
* err will not be '\n' terminated.
*
* The message is appended to err without first clearing err.
* err will not be '\n' terminated.
+ *
+ * Caveats
+ * -------
+ *
+ * Note that no locks are taken, and no refs are read, until
+ * `ref_transaction_commit` is called. So `ref_transaction_verify`
+ * won't report a verification failure until the commit is attempted.
*/
struct ref_transaction;
*/
struct ref_transaction;