git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Derrick Stolee <stolee@gmail.com>
To: Derrick Stolee <dstolee@microsoft.com>, git@vger.kernel.org
Cc: peff@peff.net
Subject: Re: [PATCH] commit: drop uses of get_cached_commit_buffer()
Date: Wed, 21 Feb 2018 14:19:17 -0500	[thread overview]
Message-ID: <07690508-e6c6-5b3b-6c03-5ad83c9c3501@gmail.com> (raw)
In-Reply-To: <1519240631-221761-1-git-send-email-dstolee@microsoft.com>

On 2/21/2018 2:17 PM, Derrick Stolee wrote:
> The get_cached_commit_buffer() method provides access to the buffer
> loaded for a struct commit, if it was ever loadead and was not freed.
>
> Two places use this to inform how to output information about commits.
>
> log-tree.c uses this method to short-circuit the output of commit
> information when the buffer is not cached. However, this leads to
> incorrect output in 'git log --oneline' where the short-OID is written
> but then the rest of the commit information is dropped and the next
> commit is written on the same line.
>
> rev-list uses this method for two reasons:
>
> - First, if the revision walk visits a commit twice, the buffer was
>    freed by rev-list in the first write. The output then does not
>    match the format expectations, since the OID is written without the
>    rest of the content.
>
> - Second, if the revision walk visits a commit that was marked
>    UNINTERESTING, the walk may never load a buffer and hence rev-list
>    will not output the verbose information.
>
> These behaviors are undocumented, untested, and unlikely to be
> expected by users or other software attempting to parse this output.
>
> Helped-by: Jeff King <peff@peff.net>
> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>

This would be a good time to allow multiple authors, or to just change 
the author, since this is exactly the diff you (Peff) provided in an 
earlier email. The commit message hopefully summarizes our discussion, 
but I welcome edits.

> ---
>   builtin/rev-list.c | 2 +-
>   log-tree.c         | 3 ---
>   2 files changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/builtin/rev-list.c b/builtin/rev-list.c
> index 48300d9..d320b6f 100644
> --- a/builtin/rev-list.c
> +++ b/builtin/rev-list.c
> @@ -134,7 +134,7 @@ static void show_commit(struct commit *commit, void *data)
>   	else
>   		putchar('\n');
>   
> -	if (revs->verbose_header && get_cached_commit_buffer(commit, NULL)) {
> +	if (revs->verbose_header) {
>   		struct strbuf buf = STRBUF_INIT;
>   		struct pretty_print_context ctx = {0};
>   		ctx.abbrev = revs->abbrev;
> diff --git a/log-tree.c b/log-tree.c
> index fc0cc0d..22b2fb6 100644
> --- a/log-tree.c
> +++ b/log-tree.c
> @@ -659,9 +659,6 @@ void show_log(struct rev_info *opt)
>   		show_mergetag(opt, commit);
>   	}
>   
> -	if (!get_cached_commit_buffer(commit, NULL))
> -		return;
> -
>   	if (opt->show_notes) {
>   		int raw;
>   		struct strbuf notebuf = STRBUF_INIT;


  reply	other threads:[~2018-02-21 19:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-20 22:12 Question about get_cached_commit_buffer() Derrick Stolee
2018-02-20 22:57 ` Jeff King
2018-02-21 14:13   ` Derrick Stolee
2018-02-21 18:48     ` Jeff King
2018-02-21 18:52       ` Jeff King
2018-02-21 19:17         ` [PATCH] commit: drop uses of get_cached_commit_buffer() Derrick Stolee
2018-02-21 19:19           ` Derrick Stolee [this message]
2018-02-21 23:34             ` Jeff King
2018-02-21 23:13           ` Jeff King
2018-02-21 23:22             ` Stefan Beller
2018-02-21 23:29               ` Jeff King
2018-02-22  1:52             ` Derrick Stolee
2018-02-21 22:22       ` Question about get_cached_commit_buffer() Junio C Hamano
2018-02-21 22:50         ` Jeff King
2018-02-21 23:03           ` Junio C Hamano
2018-02-21 23:27             ` [PATCH] revision: drop --show-all option Jeff King
2018-02-21 23:45               ` Linus Torvalds

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=07690508-e6c6-5b3b-6c03-5ad83c9c3501@gmail.com \
    --to=stolee@gmail.com \
    --cc=dstolee@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).