refs.c: add a strbuf argument to ref_transaction_commit for error logging

Add a strbuf argument to _commit so that we can pass an error string back to
the caller. So that we can do error logging from the caller instead of from
_commit.

Longer term plan is to first convert all callers to use onerr==QUIET_ON_ERR
and craft any log messages from the callers themselves and finally remove the
onerr argument completely.

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Ronnie Sahlberg <sahlberg@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Michael Haggerty <mhagger@alum.mit.edu>
This commit is contained in:
Ronnie Sahlberg
2014-06-20 07:42:46 -07:00
committed by Junio C Hamano
parent 1b07255c95
commit 995f8746bc
3 changed files with 10 additions and 3 deletions

6
refs.c
View File

@ -3444,7 +3444,8 @@ static int ref_update_reject_duplicates(struct ref_update **updates, int n,
}
int ref_transaction_commit(struct ref_transaction *transaction,
const char *msg, enum action_on_err onerr)
const char *msg, struct strbuf *err,
enum action_on_err onerr)
{
int ret = 0, delnum = 0, i;
const char **delnames;
@ -3473,6 +3474,9 @@ int ref_transaction_commit(struct ref_transaction *transaction,
update->flags,
&update->type, onerr);
if (!update->lock) {
if (err)
strbuf_addf(err, "Cannot lock the ref '%s'.",
update->refname);
ret = 1;
goto cleanup;
}