[PATCH 16/18] ref_transaction_commit(): provide better error messages
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- May 1, 2015, 12:25 UTC
- Message-ID
- <1430483158-14349-17-git-send-email-mhagger@alum.mit.edu>
- In-Reply-To
- <1430483158-14349-1-git-send-email-mhagger@alum.mit.edu>
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> --- refs.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/refs.c b/refs.c index 6077e83..2d0d8bd 100644 --- a/refs.c +++ b/refs.c @@ -3830,13 +3830,14 @@ int ref_transaction_commit(struct ref_transaction *transaction, &update->type, err); if (!update->lock) { + const 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); goto cleanup; } if ((update->flags & REF_HAVE_NEW) && !(update->flags & REF_DELETING)) {
-- 2.1.4