ref_transaction_commit(): provide better error messages
[gitweb.git] / refs.c
diff --git a/refs.c b/refs.c
index 87c1ad161d3d8b86c104011b65190bf27d3541cb..ecaf80499e888a4d645a34ba3bff4d46a9769f09 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -3838,13 +3838,15 @@ int ref_transaction_commit(struct ref_transaction *transaction,
                                &update->type,
                                err);
                if (!update->lock) {
+                       char *reason;
+
                        ret = (errno == ENOTDIR)
                                ? TRANSACTION_NAME_CONFLICT
                                : TRANSACTION_GENERIC_ERROR;
-                       error("%s", err->buf);
-                       strbuf_reset(err);
-                       strbuf_addf(err, "Cannot lock the ref '%s'.",
-                                   update->refname);
+                       reason = strbuf_detach(err, NULL);
+                       strbuf_addf(err, "Cannot lock the ref '%s': %s",
+                                   update->refname, reason);
+                       free(reason);
                        goto cleanup;
                }
        }