Web lists-archives.com

Re: [PATCH v2] line-log: suppress diff output with "-s"




Hi Peff,

On Fri, 8 Mar 2019, Jeff King wrote:

> On Fri, Mar 08, 2019 at 04:38:44PM +0100, Johannes Schindelin wrote:
> 
> > On Thu, 7 Mar 2019, Jeff King wrote:
> > 
> > > When "-L" is in use, we ignore any diff output format that the user
> > > provides to us, and just always print a patch (with extra context lines
> > > covering the whole area of interest). It's not entirely clear what we
> > > should do with all formats (e.g., should "--stat" show just the diffstat
> > > of the touched lines, or the stat for the whole file?).
> > > 
> > > But "-s" is pretty clear: the user probably wants to see just the
> > > commits that touched those lines, without any diff at all. Let's at
> > > least make that work.
> > 
> > Agree. The patch looks obviously good.
> 
> Thanks. This leaves the other formats as silently ignored.

I'd be fine with that... but...

> Do we want to do something like this:
> 
> diff --git a/revision.c b/revision.c
> index eb8e51bc63..a1b4fe2aa6 100644
> --- a/revision.c
> +++ b/revision.c
> @@ -2689,6 +2689,10 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
>  	if (revs->first_parent_only && revs->bisect)
>  		die(_("--first-parent is incompatible with --bisect"));
>  
> +	if (revs->line_level_traverse &&
> +	    (revs->diffopt.output_format & ~(DIFF_FORMAT_PATCH|DIFF_FORMAT_NO_OUTPUT)))
> +		die(_("-L does not yet support diff formats besides -p and -s"));
> +
>  	if (revs->expand_tabs_in_log < 0)
>  		revs->expand_tabs_in_log = revs->expand_tabs_in_log_default;

Since you already have that patch, why not go wild and apply it, too? ;-)

I guess you copy-edited the code from somewhere because you usually do
leave spaces around the `|`... I don't care, though ;-)

Ciao,
Dscho