Subject: Re: [PATCH 0/4] line-log: route -L output through the standard diff pipeline

From: Junio C Hamano <[email-masked]>
Date: Fri, 06 Mar 2026 17:28:58 -0800

"Michael Montalbo via GitGitGadget" <[email-masked]> writes:

> git log -L has bypassed the standard diff pipeline since its introduction,
> using dump_diff_hacky() to hand-roll diff output. A NEEDSWORK comment has
> acknowledged this from the start. This series removes dump_diff_hacky() and
> routes -L output through builtin_diff() / fn_out_consume(), so that diff
> formatting options like --word-diff, --color-moved, -w, and pickaxe options
> (-S, -G) work with -L.

Exciting.

> User-visible output change: -L output now includes index lines, new file
> mode headers, and funcname context in @@ headers that were previously
> missing. Tools parsing -L output may need to handle these additional lines.
>
> Known limitations not addressed in this series:
>
>  * line_log_print() still calls show_log() and diff_flush() directly,
>    bypassing log_tree_diff_flush(). The early return in log_tree_commit()
>    (and its associated NEEDSWORK about no_free not being restored) is
>    pre-existing. Restructuring -L to flow through log_tree_diff_flush() is a
>    larger change that would affect separator and header logic; it is left
>    for a follow-up.

OK.  Previously all the output routines were hand-rolled, but this
reduces the extent of deviation---as long as we are moving in the
right direction, it is a good idea to find a good place to stop and
leave the rest for later.

>  * Non-patch diff formats (--raw, --numstat, --stat, etc.) remain
>    unimplemented for -L.

It would not hurt if these are omitted.

> Michael Montalbo (4): line-log: fix crash when combined with pickaxe options
> line-log: route -L output through the standard diff pipeline t4211: add
> tests for -L with standard diff options doc: note that -L supports patch
> formatting and pickaxe options

I am not sure what this bloc is, but it looks like a reflowed
version of the list of commits below?

> Michael Montalbo (4):
>   line-log: fix crash when combined with pickaxe options
>   line-log: route -L output through the standard diff pipeline
>   t4211: add tests for -L with standard diff options
>   doc: note that -L supports patch formatting and pickaxe options

Let me throw in a handful of names found in the output of "git
shortlog --no-merges -s -n line-log.[ch]" on the Cc: line to solicit
help.
.