Re: [PATCH 5/7] line-log: support diff stat formats with -L
- From
Michael Montalbo <mmontalbo@gmail.com>
- Date
- Jun 23, 2026, 02:25 UTC
- Message-ID
- <CAC2QwmKEHb+LL4ZkQwq+Rw8eyDXzdBp_nxa_d+Ecx0K1icNqQA@mail.gmail.com>
- In-Reply-To
- <xmqq8q8bpl03.fsf@gitster.g>
On Thu, Jun 18, 2026 at 3:00 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 11 quoted lines
> > If "range-scoped" is a widely known term (as opposed to a new word > invented only during the introduction of this topic), the above > reads well with a nice rhythm, but otherwise it may be easier to > read, i.e., something like > > The stat formats counts only lines within the tracked range. > > without having readers learn yet another new term that is only used > here. >
It was something I invented for the topic, but I agree it is better to avoid coining a new term, especially since it ends up being spelled out anyway in the blurb that follows. Will replace the term.
Show 27 quoted lines
> > diff --git a/diff.c b/diff.c
> > index 6233a96bf0..026fafeb90 100644
> > --- a/diff.c
> > +++ b/diff.c
> > @@ -4289,7 +4289,18 @@ static void builtin_diffstat(const char *name_a, const char *name_b,
> > xecfg.ctxlen = o->context;
> > xecfg.interhunkctxlen = o->interhunkcontext;
> > xecfg.flags = XDL_EMIT_NO_HUNK_HDR;
> > - if (xdi_diff_outf(&mf1, &mf2, NULL,
> > +
> > + if (p->line_ranges) {
> > + struct line_range_filter lr_filter;
> > +
> > + line_range_filter_init(&lr_filter, p->line_ranges,
> > + diffstat_consume, diffstat);
> > +
> > + if (line_range_filter_diff(&lr_filter, &mf1, &mf2,
> > + &xpp, &xecfg))
> > + die("unable to generate diffstat for %s",
> > + one->path);
> > + } else if (xdi_diff_outf(&mf1, &mf2, NULL,
> > diffstat_consume, diffstat, &xpp, &xecfg))
> > die("unable to generate diffstat for %s", one->path);
>
> It is pleasing to see that this can be done with such a surprisingly
> small change.
>Agreed! I didn't initially plan it out that way during the first series, but things fell into place nicely by the end.