From: "Randall S. Becker" <rsbecker@nexbridge.com>
To: "'Jeff King'" <peff@peff.net>, "'Matthew Booth'" <mbooth@redhat.com>
Cc: <git@vger.kernel.org>
Subject: RE: [BUG] git log -L ... -s does not suppress diff output
Date: Mon, 25 Feb 2019 13:46:11 -0500 [thread overview]
Message-ID: <001701d4cd3a$6441d420$2cc57c60$@nexbridge.com> (raw)
In-Reply-To: <20190225171817.GA17524@sigill.intra.peff.net>
On February 25, 2019 12:18, Jeff King wrote:
> To: Matthew Booth <mbooth@redhat.com>
> Cc: git@vger.kernel.org
> Subject: Re: [BUG] git log -L ... -s does not suppress diff output
>
> On Mon, Feb 25, 2019 at 05:03:50PM +0000, Matthew Booth wrote:
>
> > Example output:
> >
> > =========
> > $ git --version
> > git version 2.20.1
> >
> > $ git log -L 2957,3107:nova/compute/manager.py -s commit
> > 35ce77835bb271bad3c18eaf22146edac3a42ea0
> > <snip>
> >
> > diff --git a/nova/compute/manager.py b/nova/compute/manager.py
> > --- a/nova/compute/manager.py
> > +++ b/nova/compute/manager.py
> > @@ -2937,152 +2921,151 @@
> > def rebuild_instance(self, context, instance, orig_image_ref, image_ref,
> > injected_files, new_pass, orig_sys_metadata,
> > <snip> =========
>
> At first I wondered why you would want to do this, since the point of -L is to
> walk through that diff. But I suppose you might want to see just the commits,
> without the actual patch, and that's what "-s" ought to do.
>
> > git log docs suggest it should not do this:
> >
> > -s, --no-patch
> > Suppress diff output. Useful for commands like git show
> > that show the patch by default, or to cancel
> > the effect of --patch.
> >
> > Couldn't find anything in a search of the archives of this mailing
> > list, although that's obviously far from conclusive. Seems to be
> > longstanding, as it was mentioned on StackOverflow back in 2015:
>
> I think the issue is just that "-L" follows a very different code path than the
> normal diff generator. Perhaps something like this helps?
>
> diff --git a/line-log.c b/line-log.c
> index 63df51a08f..ed46a3a493 100644
> --- a/line-log.c
> +++ b/line-log.c
> @@ -1106,7 +1106,8 @@ int line_log_print(struct rev_info *rev, struct
> commit *commit)
> struct line_log_data *range = lookup_line_range(rev, commit);
>
> show_log(rev);
> - dump_diff_hacky(rev, range);
> + if (!(rev->diffopt.output_format & DIFF_FORMAT_NO_OUTPUT))
> + dump_diff_hacky(rev, range);
> return 1;
> }
I hit this about 6 months ago while trying to show off git to some colleagues - it was on 2.8.5. Sadly I forgot about it. Glad it came back.
Thanks.
prev parent reply other threads:[~2019-02-25 18:46 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-25 17:03 [BUG] git log -L ... -s does not suppress diff output Matthew Booth
2019-02-25 17:18 ` Jeff King
2019-02-25 17:32 ` [PATCH] line-log: suppress diff output with "-s" Jeff King
2019-02-25 17:59 ` SZEDER Gábor
2019-02-25 18:55 ` Jeff King
2019-02-25 18:46 ` Randall S. Becker [this message]
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='001701d4cd3a$6441d420$2cc57c60$@nexbridge.com' \
--to=rsbecker@nexbridge.com \
--cc=git@vger.kernel.org \
--cc=mbooth@redhat.com \
--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.
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.