зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Коммит
59fcf746f5
3
diff.c
3
diff.c
|
@ -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;
|
||||
|
|
|
@ -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 &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче