diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-12-18 15:15:18 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-12-18 15:15:18 -0800 |
commit | 59fcf746f5a6253b3c0a84a94ecd5cf1add56e3a (patch) | |
tree | f2eca2aa27d7014846d4d0381ad1306c48c5b964 | |
parent | Merge branch 'es/perf-export-fix' (diff) | |
parent | diff: correct interaction between --exit-code and -I<pattern> (diff) | |
download | tgif-59fcf746f5a6253b3c0a84a94ecd5cf1add56e3a.tar.xz |
Merge branch 'jc/diff-I-status-fix'
"git diff -I<pattern> -exit-code" should exit with 0 status when
all the changes match the ignored pattern, but it didn't.
* jc/diff-I-status-fix:
diff: correct interaction between --exit-code and -I<pattern>
-rw-r--r-- | diff.c | 3 | ||||
-rwxr-xr-x | t/t4015-diff-whitespace.sh | 24 |
2 files changed, 26 insertions, 1 deletions
@@ -4634,7 +4634,8 @@ void diff_setup_done(struct diff_options *options) * inside contents. */ - if ((options->xdl_opts & XDF_WHITESPACE_FLAGS)) + if ((options->xdl_opts & XDF_WHITESPACE_FLAGS) || + options->ignore_regex_nr) options->flags.diff_from_contents = 1; else options->flags.diff_from_contents = 0; diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh index 47f0e2889d..8c574221b2 100755 --- a/t/t4015-diff-whitespace.sh +++ b/t/t4015-diff-whitespace.sh @@ -567,6 +567,30 @@ test_expect_success '--check and --quiet are not exclusive' ' git diff --check --quiet ' +test_expect_success '-w and --exit-code interact sensibly' ' + test_when_finished "git checkout x" && + { + test_seq 15 && + echo " 16" + } >x && + test_must_fail git diff --exit-code && + git diff -w >actual && + test_must_be_empty actual && + git diff -w --exit-code +' + +test_expect_success '-I and --exit-code interact sensibly' ' + test_when_finished "git checkout x" && + { + test_seq 15 && + echo " 16" + } >x && + test_must_fail git diff --exit-code && + git diff -I. >actual && + test_must_be_empty actual && + git diff -I. --exit-code +' + test_expect_success 'check staged with no whitespace errors' ' echo "foo();" >x && git add x && |