Re: [PATCH v3 0/6] use the pager in 'add -p'
- From
Jeff King <peff@peff.net>
- Date
- Jun 5, 2024, 09:09 UTC
- Message-ID
- <20240605090935.GF2345232@coredump.intra.peff.net>
- In-Reply-To
- <xmqqikyo207f.fsf@gitster.g>
On Tue, Jun 04, 2024 at 08:32:04AM -0700, Junio C Hamano wrote:
Show 5 quoted lines
> The default that colors the output is something we might later > regret. Those who want colored output can always use the > interactive.diffFilter configuration, but I am not sure if going > the other direction to strip coloring is just as easy. But other > than that, I think we are at an OK place to stop.
I don't think diffFilter is a great solution there. In my experience, that is augmenting the existing coloring done by "diff --color" itself (and of course many people do not use a separate filter in the first place, and just see the normal color output). So there's not an easy way to add the color back to a stripped version.
The interactive-patch code is literally holding the two color/non-color variants in memory, splitting the hunks based on line counts, and then showing you one and applying the other. Even if you wanted to run "git diff --color" yourself in the "|" command, it would be a lot of work to pick out the hunk of interest.
Given that the main use case for "|" is for human viewing through a pager, I think the colorful, filtered version meant for users is the best default. And then the "bare" version can come from an alternate command or a knob.
Just to note some prior art, mutt's "<pipe-message>" faces a similar problem. You might want the raw message (if you're going to poke at headers, MIME parts, etc yourself) or you may want a decoded one (if you just care about body text and don't want to deal with base64, qp, etc, yourself). They provide a stateful config knob, but then you end up with horrible macros that toggle the knob, like:
:set pipe_decode=yes<enter><pipe-message>my-script<enter>:set pipe_decode=no<enter>
I think having two separate commands for the two modes would be less confusing.
-Peff