All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Ronnie Sahlberg <sahlberg@google.com>
Cc: git@vger.kernel.org, Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [PATCH 09/15] refs.c: only write reflog update if msg is non-NULL
Date: Thu, 23 Oct 2014 11:32:45 -0700	[thread overview]
Message-ID: <xmqq8uk6skky.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1413919462-3458-10-git-send-email-sahlberg@google.com> (Ronnie Sahlberg's message of "Tue, 21 Oct 2014 12:24:16 -0700")

Ronnie Sahlberg <sahlberg@google.com> writes:

> commit 020ed65a12838bdead64bc3c5de249d3c8f5cfd8 upstream.
>
> 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.

Does any existing caller call this codepath with update->msg == NULL?

Will "please truncate" stay to be the only plausible special cause
to call into this codepath without having any meaningful message?

I am trying to make sure that this patch is not painting us into a
corner where we will find out another reason for doing something
esoteric in this codepath but need to find a way other than setting
msg to NULL for the caller to trigger that new codepath.  Put it in
another way, please convince me that a new boolean field in update,
e.g. update->truncate_reflog, is way overkill for this.

>
> Change-Id: I44c89caa7e7c4960777b79cfb5d339a5aa3ddf7a
> Signed-off-by: Ronnie Sahlberg <sahlberg@google.com>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> ---
>  refs.c | 5 +++--
>  refs.h | 1 +
>  2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/refs.c b/refs.c
> index d54c3b9..f14b76e 100644
> --- a/refs.c
> +++ b/refs.c
> @@ -3895,8 +3895,9 @@ int transaction_commit(struct transaction *transaction,
>  				update->reflog_fd = -1;
>  				continue;
>  			}
> -		if (log_ref_write_fd(update->reflog_fd, update->old_sha1,
> -				     update->new_sha1,
> +		if (update->msg &&
> +		    log_ref_write_fd(update->reflog_fd,
> +				     update->old_sha1, update->new_sha1,
>  				     update->committer, update->msg)) {
>  			error("Could write to reflog: %s. %s",
>  			      update->refname, strerror(errno));
> diff --git a/refs.h b/refs.h
> index 5075073..bf96b36 100644
> --- a/refs.h
> +++ b/refs.h
> @@ -337,6 +337,7 @@ int transaction_delete_ref(struct transaction *transaction,
>  /*
>   * Append a reflog entry for refname. If the REFLOG_TRUNCATE flag is set
>   * this update will first truncate the reflog before writing the entry.
> + * If msg is NULL no update will be written to the log.
>   */
>  int transaction_update_reflog(struct transaction *transaction,
>  			      const char *refname,

  reply	other threads:[~2014-10-23 18:32 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-21 19:24 [PATCH 00/15] ref-transactions-reflog Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 01/15] refs.c make ref_transaction_create a wrapper to ref_transaction_update Ronnie Sahlberg
2014-10-23 17:42   ` Junio C Hamano
2014-10-23 17:44     ` Ronnie Sahlberg
2014-10-23 17:54       ` Junio C Hamano
2014-10-28 18:40         ` Junio C Hamano
2014-10-21 19:24 ` [PATCH 02/15] refs.c: make ref_transaction_delete a wrapper for ref_transaction_update Ronnie Sahlberg
2014-10-23 17:43   ` Junio C Hamano
2014-10-21 19:24 ` [PATCH 03/15] refs.c: rename the transaction functions Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 04/15] refs.c: add a new update_type field to ref_update Ronnie Sahlberg
2014-10-23 17:47   ` Junio C Hamano
2014-10-21 19:24 ` [PATCH 05/15] refs.c: add a function to append a reflog entry to a fd Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 06/15] copy.c: make copy_fd preserve meaningful errno Ronnie Sahlberg
2014-10-23 17:51   ` Junio C Hamano
2014-10-23 17:54     ` Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 07/15] refs.c: add a transaction function to append a reflog entry Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 08/15] refs.c: add a flag to allow reflog updates to truncate the log Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 09/15] refs.c: only write reflog update if msg is non-NULL Ronnie Sahlberg
2014-10-23 18:32   ` Junio C Hamano [this message]
2014-10-28 19:17     ` Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 10/15] refs.c: allow multiple reflog updates during a single transaction Ronnie Sahlberg
2014-10-23 18:54   ` Junio C Hamano
2014-10-28 19:59     ` Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 11/15] reflog.c: use a reflog transaction when writing during expire Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 12/15] refs.c: rename log_ref_setup to create_reflog Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 13/15] refs.c: make unlock_ref/close_ref/commit_ref static Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 14/15] refs.c: remove lock_any_ref_for_update Ronnie Sahlberg
2014-10-21 19:24 ` [PATCH 15/15] refs.c: allow deleting refs with a broken sha1 Ronnie Sahlberg
  -- strict thread matches above, loose matches on Subject: below --
2014-07-23 17:03 [PATCH 00/15] ref-transactions for reflogs Ronnie Sahlberg
2014-07-23 17:03 ` [PATCH 09/15] refs.c: only write reflog update if msg is non-NULL Ronnie Sahlberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqq8uk6skky.fsf@gitster.dls.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    --cc=sahlberg@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.