diff options
author | Junio C Hamano <gitster@pobox.com> | 2023-08-19 02:59:30 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-08-19 03:01:11 +0300 |
commit | e8efd863699c6927953ebff6cb317c5632b7324d (patch) | |
tree | 3b1e53f8bc91926591072c5055757b5746269fb7 /t | |
parent | c9a3e724cf75b44e47cfca5ae37cd0d7864c2220 (diff) |
diff: teach "--stat -w --exit-code" to notice differences
When options like "-w" is used while "--exit-code" option is in
effect, instead of the usual "do we have any filepair whose preimage
and postimage have different <mode,object>?" check, we need to compare
the contents of the blobs, taking into account that certain changes
are considered no-op.
With the previous step, we taught "--patch" codepath to set the
.found_changes bit correctly, even for a change that only affects
the mode and not object. The "--stat" codepath, however, did not
set the .found_changes bit at all. This lead to
$ git diff --stat -w --exit-code
for a change that does have an output to exit with status 0.
Set the bit by inspecting the list of paths the diffstat output is
given for (a mode-only change will still appear as a "0-line added
0-line deleted" change) to fix it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t4015-diff-whitespace.sh | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh index 02731dccb9..230a89b951 100755 --- a/t/t4015-diff-whitespace.sh +++ b/t/t4015-diff-whitespace.sh @@ -11,7 +11,7 @@ TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh . "$TEST_DIRECTORY"/lib-diff.sh -for opts in --patch --quiet -s +for opts in --patch --quiet -s --stat --shortstat --dirstat=lines do test_expect_success "status with $opts (different)" ' |