Thread (3 messages) flat view 3 messages, 3 authors, 2021-08-03

Re: Enhancing --show-function and --function-context in default configurations

From: Jeff King <hidden>
Date: 2021-08-03 14:55:22

On Mon, Aug 02, 2021 at 09:34:32PM -0500, heapcrash heapcrash wrote:
Thanks all for the feedback!  I'll try to address it below:
quoted
Two other places may be diff hunk headers and --diff-words output, I think.
I didn't think of those.  Does this mean that diffs generated with a
given e.g. diff=cpp configuration might not apply cleanly if run on
some other user's system without that setting?
No, because the text in the hunk headers is purely cosmetic. They are
just for humans, and applying the patch ignores them.

The word-diffs are likewise just meant for human consumption, and can't
be applied at all.
quoted
It makes emitting the diffs take more CPU, but the same is true of other
options like colorMoved etc, so that in itself is not a dealbreaker.
I didn't think of this scenario, that it would add CPU time even
without -W/--function-context/--show-function.  I'd definitely be fine
with preserving the current behavior in these cases (more below).
I think the CPU increase is negligible. Either way, the funcname header
involves walking backwards through the file applying a pattern to see if
a line is a good candidate. The type-specific patterns are a little more
complicated, but I doubt the difference is even measurable in practice.

If we are going to have defaults for extension-to-diff mapping, I would
prefer apply them consistently (so for -W, but also for funcnames,
word-diffs, etc). That is both easier to implement and easier to explain
to users (and assuming our mapping is accurate, more likely to be what
they want).
Another case I didn't think of in the original post is with the "git
log -L:funcname:path/to/file.cpp" option, which tracks changes within
a function over time.  Having "better" default function boundary
detection here would also be useful.
Yes, I think this uses the same diff funcname patterns, so once we have
default mappings, it would start to use them.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help