]> git.ipfire.org Git - thirdparty/git.git/commit - diff.c
diff: the -w option breaks --exit-code for --raw and other output modes
authorJunio C Hamano <gitster@pobox.com>
Fri, 18 Aug 2023 23:59:32 +0000 (16:59 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 22 Aug 2023 01:56:03 +0000 (18:56 -0700)
commita64f8b25953b9cf0f6d81ed24e87448ae513b094
tree2666a4b0aebf96ea134f9c0aa3b7f181b0efa979
parent5626558e639cb34a8e32f52260fa7d7393b1982c
diff: the -w option breaks --exit-code for --raw and other output modes

The output from "--raw", "--name-status", and "--name-only" modes in
"git diff" does depend on and does not reflect how certain different
contents are considered equal, unlike "--patch" and "--stat" output
modes do, when used with options like "-w" (another way of thinking
about it is that it is not like we recompute the hash of the blob
after removing all whitespaces to show "git diff --raw -w" output).

But the fact that "--raw" and friends ignore "-w" is not a good
excuse for "diff --raw -w --exit-code" to also ignore the request to
report the differences with its exit status.  When run without "-w",
"git diff --exit-code --raw" does report with its exit status the
differences as requested, and we should do the same when run with
"-w", too.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c
t/t4015-diff-whitespace.sh