Subject: Re: [PATCH 08/31] refs.c: only write reflog update if msg is non-NULL

From: Junio C Hamano <[email-masked]>
Date: Fri, 16 May 2014 14:24:17 -0700

Ronnie Sahlberg <[email-masked]> writes:

> When performing a reflog transaction update, only write to the reflog iff
> msg is non-NULL. This can then be combined with REFLOG_TRUNCATE to perform
> an update that only truncates but does not write.
>
> Signed-off-by: Ronnie Sahlberg <[email-masked]>
> ---
>  refs.c | 8 +++++---
>  refs.h | 1 +
>  2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/refs.c b/refs.c
> index a8b583a..a3f60ad 100644
> --- a/refs.c
> +++ b/refs.c
> @@ -3625,9 +3625,11 @@ int transaction_commit(struct ref_transaction *transaction,
>  			    ftruncate(update->reflog_fd, 0)) {
>  				error("Could not truncate reflog");
>  			}
> -		if (log_ref_write_fd(update->reflog_fd, update->old_sha1,
> -				     update->new_sha1,
> -				     update->committer, update->msg)) {
> +		if (update->msg && log_ref_write_fd(update->reflog_fd,
> +						    update->old_sha1,
> +						    update->new_sha1,
> +						    update->committer,
> +						    update->msg)) {

Wouldn't it make it easier to read if you chopped immediately after
the &&, i.e. chopping at a gap at a higher-level in the parse tree?

        if (update->msg &&
            log_ref_write_fd(update->reflog_fd,
                             update->old_sha1, update->old_sha1,
                             update->committer, update->msg)) {