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 <mhagger@alum.mit.edu>
This commit is contained in:
Michael Haggerty 2015-05-11 17:25:18 +02:00 committed by Junio C Hamano
parent abeef9c856
commit cbaabcbc6f

10
refs.c
View File

@ -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;
}
}