Thread (78 messages) flat view 78 messages, 4 authors, 2016-06-15

Re: [PATCH v6 03/42] refs.c: add a strbuf argument to ref_transaction_commit for error logging

From: Ronnie Sahlberg <hidden>
Date: 2016-06-15 23:01:08

Thanks.
Comment added and whitespace fixed.

On Tue, May 13, 2014 at 4:10 PM, Jonathan Nieder [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Ronnie Sahlberg wrote:
quoted
Add a strbuf argument to _commit so that we can pass an error string back to
the caller. So that we can do error logging from the caller instead of from
_commit.

Longer term plan is to first convert all callers to use onerr==QUIET_ON_ERR
and craft any log messages from the callers themselves and finally remove the
onerr argument completely.
Very nice.

[...]
quoted
+++ b/refs.c
[...]
quoted
@@ -3443,6 +3444,9 @@ int ref_transaction_commit(struct ref_transaction *transaction,
                                             update->flags,
                                             &update->type, onerr);
              if (!update->lock) {
+                     if (err)
+                             strbuf_addf(err ,"Cannot lock the ref '%s'.",
+                                         update->refname);
Tiny nit: whitespace.

[...]
quoted
--- a/refs.h
+++ b/refs.h
@@ -268,9 +268,12 @@ void ref_transaction_delete(struct ref_transaction *transaction,
  * Commit all of the changes that have been queued in transaction, as
  * atomically as possible.  Return a nonzero value if there is a
  * problem.  The ref_transaction is freed by this function.
+ * If err is non-NULL we will add an error string to it to explain why
+ * the transaction failed.
Probably worth mentioning the error string doesn't end with a newline
so the caller knows how to use it.

With the whitespace fix and with or without the comment tweak,
Reviewed-by: Jonathan Nieder <redacted>
diff --git i/refs.c w/refs.c
index 64e8feb..2ca3169 100644
--- i/refs.c
+++ w/refs.c
@@ -3445,7 +3445,7 @@ int ref_transaction_commit(struct ref_transaction *transaction,
                                               &update->type, onerr);
                if (!update->lock) {
                        if (err)
-                               strbuf_addf(err ,"Cannot lock the ref '%s'.",
+                               strbuf_addf(err, "Cannot lock the ref '%s'.",
                                            update->refname);
                        ret = 1;
                        goto cleanup;
diff --git i/refs.h w/refs.h
index ff87e14..d45212f 100644
--- i/refs.h
+++ w/refs.h
@@ -268,8 +268,8 @@ void ref_transaction_delete(struct ref_transaction *transaction,
  * Commit all of the changes that have been queued in transaction, as
  * atomically as possible.  Return a nonzero value if there is a
  * problem.  The ref_transaction is freed by this function.
- * If err is non-NULL we will add an error string to it to explain why
- * the transaction failed.
+ * If err is non-NULL we will append an error string (with no trailing
+ * newline) to it to explain why the transaction failed.
  */
 int ref_transaction_commit(struct ref_transaction *transaction,
                           const char *msg, struct strbuf *err,
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help