From: Michael Haggerty Date: Mon, 11 May 2015 15:25:18 +0000 (+0200) Subject: ref_transaction_commit(): provide better error messages X-Git-Tag: v2.4.3~14^2~2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/cbaabcbc6fa9568269d6baeccb0a621cd0413c6c ref_transaction_commit(): provide better error messages Now that lock_ref_sha1_basic() gives us back its error messages via a strbuf, incorporate its error message into our error message rather than emitting one error messages to stderr immediately and returning a second to our caller. Signed-off-by: Michael Haggerty --- diff --git a/refs.c b/refs.c index 87c1ad161d..ecaf80499e 100644 --- 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; } }