refs.c: add a strbuf argument to ref_transaction_commit for error logging
[gitweb.git] / refs.c
diff --git a/refs.c b/refs.c
index 1d6dece4266226b3a3b6f44a0afc006ac39151c4..db0560259069b87961f9799a01b37035d73ff091 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -3444,7 +3444,8 @@ static int ref_update_reject_duplicates(struct ref_update **updates, int n,
 }
 
 int ref_transaction_commit(struct ref_transaction *transaction,
-                          const char *msg, enum action_on_err onerr)
+                          const char *msg, struct strbuf *err,
+                          enum action_on_err onerr)
 {
        int ret = 0, delnum = 0, i;
        const char **delnames;
@@ -3473,6 +3474,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);
                        ret = 1;
                        goto cleanup;
                }