Thread (9 messages) 9 messages, 5 authors, 2025-07-25

Re: git-diff: --ignore-matching-lines has no effect on the output when --name-only is used

From: Lidong Yan <hidden>
Date: 2025-07-25 06:47:07

hi@arnes.space writes:
quoted
it does not make sense for the answer to be different depending on the
presense of -w or --ignore-matching options.
does it really not? i thought of `--name-only` as changing the
formatting of the output, as doing something similar to this:

git diff --no-ext-diff ... | grep -P "^(---|\+\+\+)" | cut -d/ -f2- | uniq
Git computes a SHA value for each file, so when using --name-only to
check which files have changed, it only needs to compare the SHA values.
There's no need to generate and then filter the full diff content.

Of course, the implementation of git diff is more complex, but I hope you
can roughly understand that --name-only usually doesn't need the actual
diff content.

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