From: Michael Montalbo Date: Wed, 20 May 2026 20:21:33 GMT Subject: Re: [BUG] "git diff --word-diff" gives a diff while they are only space changes Message-ID: In-Reply-To: On Mon, May 18, 2026 at 8:11 PM Junio C Hamano wrote: > > Chris Torek 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?