git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [BUG] "git diff --word-diff" gives a diff while they are only space changes

From
VLVincent Lefevre <vincent@vinc17.net>
Date
May 14, 2026, 09:55 UTC
Message-ID
<20260514095522.GA159111@qaa.vinc17.org>
In-Reply-To
<xmqq8q9migqk.fsf@gitster.g>
On 2026-05-14 16:37:39 +0900, Junio C Hamano wrote:
Show 14 quoted lines
> Michael Montalbo <mmontalbo@gmail.com> writes:
> 
> > @@ -457,6 +457,11 @@ endif::git-diff[]
> >  +
> >  Note that despite the name of the first mode, color is used to
> >  highlight the changed parts in all modes if enabled.
> > ++
> > +Word diff works by finding word-level changes within each hunk of
> > +the line-level diff.  The line-level alignment determines which
> > +changed lines are compared to each other, which can affect the
> > +word-level output.
> 
> The added text may not say anything wrong, but I am not sure how it
> helps the end user to know the way machinery works internally.

Perhaps only the first sentence should be kept and that the following should be added: "Because of that, using the --ignore-space-change option is recommended."

Note: Earlier in the discussion, Johannes Sixt suggested -w
(--ignore-all-space), but this is wrong, as
  git diff --word-diff -w <(printf foo) <(printf "f o o")
gives no differences while one has 1 word "foo" vs 3 words "f o o".

However, --ignore-space-change is actually not even sufficient since

  git diff --ignore-space-change <(printf "foo bar") <(printf "foo\nbar")

finds differences though there are only space changes (thus this may affect hunks in case --word-diff would be used too). However, I suppose that the cases where --word-diff --ignore-space-change would not give a "real word diff" would be quite rare in practice.

-- 
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Pascaline project (LIP, ENS-Lyon)
Previous: Junio C HamanoNext: Phillip Wood
Message 5 of 14 in “Re: [BUG] "git diff --word-diff" gives a diff while they are only space changes”
  1. Michael MontalboMay 12, 2026
  2. Vincent LefevreMay 12, 2026
  3. Michael MontalboMay 13, 2026
  4. Junio C HamanoMay 14, 2026
  5. Vincent LefevreMay 14, 2026
  6. Phillip WoodMay 15, 2026
  7. Michael MontalboMay 18, 2026
  8. Johannes SixtMay 18, 2026
  9. Michael MontalboMay 19, 2026
  10. Chris TorekMay 19, 2026
  11. Junio C HamanoMay 19, 2026
  12. Michael MontalboMay 20, 2026
  13. Michael MontalboMay 28, 2026
  14. Vincent LefevreJun 8, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.