All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vincent Lefevre <vincent@vinc17.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Michael Montalbo <mmontalbo@gmail.com>,
	git@vger.kernel.org, j6t@kdbg.org
Subject: Re: [BUG] "git diff --word-diff" gives a diff while they are only space changes
Date: Thu, 14 May 2026 11:55:22 +0200	[thread overview]
Message-ID: <20260514095522.GA159111@qaa.vinc17.org> (raw)
In-Reply-To: <xmqq8q9migqk.fsf@gitster.g>

On 2026-05-14 16:37:39 +0900, Junio C Hamano wrote:
> 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)

  reply	other threads:[~2026-05-14  9:55 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-12 20:56 [BUG] "git diff --word-diff" gives a diff while they are only space changes Michael Montalbo
2026-05-12 21:17 ` Vincent Lefevre
2026-05-13 15:52   ` Michael Montalbo
2026-05-14  7:37 ` Junio C Hamano
2026-05-14  9:55   ` Vincent Lefevre [this message]
2026-05-15 13:22     ` Phillip Wood
  -- strict thread matches above, loose matches on Subject: below --
2026-05-06  1:09 Vincent Lefevre
2026-05-08 12:48 ` Johannes Sixt
2026-05-08 21:39   ` Vincent Lefevre
2026-05-09  6:16     ` Johannes Sixt
2026-05-09 15:55       ` Vincent Lefevre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260514095522.GA159111@qaa.vinc17.org \
    --to=vincent@vinc17.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j6t@kdbg.org \
    --cc=mmontalbo@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.