From: Chris Torek Date: Tue, 19 May 2026 02:31:35 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 7:11 PM Michael Montalbo wrote: > Yeah, I was trying to explain the difference Vincent saw compared to wdiff, > but I agree with your criticism. In "beating around the bush" regarding > implementation details / making a direct comparison to wdiff, it has been > hard to craft a meaningful message. My opinion is: don't do that, just get right to it. > > If we document the algorithm in such detail, we cast it in stone. I > > wouldn't want to paint ourselves into that corner. > I also agree with this sentiment. I haven't been able to come up with a > message that threads the needle appropriately, so I'm open to dropping > the patch or reworking it if others have suggestions. 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