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>
Michael Haggerty committed
May 11, 2015 at 17:25 UTC
cbaabcbc6fa9568269d6baeccb0a621cd0413c6c
1 file changed
+6
-4
refs.c
+6
-4
@@ -3838,13 +3838,15 @@ int ref_transaction_commit(struct ref_transaction *transaction,
3838
&update->type,
3839
err);
3840
if (!update->lock) {
3841
+ char *reason;
3842
+
3843
ret = (errno == ENOTDIR)
3844
? TRANSACTION_NAME_CONFLICT
3845
: TRANSACTION_GENERIC_ERROR;
3844
- error("%s", err->buf);
3845
- strbuf_reset(err);
3846
- strbuf_addf(err, "Cannot lock the ref '%s'.",
3847
- update->refname);
3846
+ reason = strbuf_detach(err, NULL);
3847
+ strbuf_addf(err, "Cannot lock the ref '%s': %s",
3848
+ update->refname, reason);
3849
+ free(reason);
3850
goto cleanup;
3851
}
3852
}