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
Michael Montalbo <mmontalbo@gmail.com>
Date
May 28, 2026, 19:25 UTC
Message-ID
<CAC2QwmKjr2eiFNPPmERq7n-UjE-SF2vE4eHDanYE-4heWxzQVw@mail.gmail.com>
In-Reply-To
<CAC2QwmLXk=CXNo8+Ja0fL5pN1YYMTkh7XHAUwN1c9VxuFhyy4Q@mail.gmail.com>
On Wed, May 20, 2026 at 1:21 PM Michael Montalbo <mmontalbo@gmail.com> wrote:
Show 50 quoted lines
>
> On Mon, May 18, 2026 at 8:11 PM Junio C Hamano <gitster@pobox.com> wrote:
> >
> > Chris Torek <chris.torek@gmail.com> writes:
> >
> > > Call it an "implementation note" (or, if you like, a "practical
> > > consideration"?).
> > > Something along these lines might work...
> > >
> > >   Implementation Note
> > >
> > >   The --word-diff option currently operates by taking the same
> > >   line by line diff that you get without the option, then massaging
> > >   the result into a word-by-word difference. This may cause an
> > >   unnecessarily-larger diff than you would see with a more-clever
> > >   implementation. If and when Git acquires a more-clever
> > >   implementation, the output may change. Note that this is
> > >   similar to the --diff-algorithm option, which may change the
> > >   output.
> > >
> > >   Regardless of which algorithm is used, _any_ diff simply shows
> > >   _a_ way to achieve some particular change. It's impossible for
> > >   any algorithm to tell whether someone deleted two lines and
> > >   then put one back exactly as it appeared earlier, saving the
> > >   resulting text, vs deleting a single line, for instance. Only a
> > >   keystroke-by-keystroke logger would be able to tell what the
> > >   human operator actually typed into some editor. Git does
> > >   not have that information, and having it is not desired.
> > >
> > > Chris
> >
> > I understand your frustration in the second paragraph ;-) but let's
> > not go there.  The first paragraph is excellent.  It gives readers a
> > clear enough explanation to understand what is happening and stop
> > complaining where there is nothing to complain about (which is
> > already hinted by the "Note that" at the end).
> >
>
> Thanks for the ideas, Chris. Here is my attempt at synthesizing Chris'
> suggestions and Junio's feedback:
>
>   The `--word-diff` option operates by taking the same line-by-line
>   diff that is produced without the option and computing
>   word-by-word changes within each hunk.  This may produce a
>   larger diff than a dedicated word-diff tool would.  If Git
>   acquires a different implementation in the future, the output
>   may change.  Note that this is similar to the `--diff-algorithm`
>   option, which may also change the output.
>
> Does this work?

Updated the patch with the revised wording: https://lore.kernel.org/git/pull.2113.git.1778686956622.gitgitgadget@gmail.com/T/#t

Please feel free to pick up, modify, or drop as appropriate.
Previous: Michael MontalboNext: Vincent Lefevre
Message 13 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.