Am 08.08.2017 um 17:18 schrieb Adam Dinwoodie: > The t3700-add.sh test is currently failing on the pu branch on Cygwin. > To my surprise, the problem appears to have been introduced by a merge, > 867fa1d6a. Both parents of that merge have the test succeeding, but > it's failing on that merge commit. > > Failing test output below: > expecting success: > git reset --hard && > echo foo >foo3 && > git add foo3 && > git add --chmod=+x foo3 && > test_mode_in_index 100755 foo3 && > echo foo >xfoo3 && > chmod 755 xfoo3 && > git add xfoo3 && > git add --chmod=-x xfoo3 && > test_mode_in_index 100644 xfoo3 > > ++ git reset --hard > HEAD is now at d12df1f commit all > ++ echo foo > ++ git add foo3 > ++ git add --chmod=+x foo3 > ++ test_mode_in_index 100755 foo3 > ++ case "$(git ls-files -s "$2")" in > +++ git ls-files -s foo3 > ++ echo pass > pass > ++ echo foo > ++ chmod 755 xfoo3 > ++ git add xfoo3 > ++ git add --chmod=-x xfoo3 > cannot chmod 'xfoo3'++ test_mode_in_index 100644 xfoo3 > ++ case "$(git ls-files -s "$2")" in > +++ git ls-files -s xfoo3 > ++ echo fail > fail > ++ git ls-files -s xfoo3 > 120000 c5c4ca97a3a080c32920941b665e94a997901491 0 xfoo3 > ++ return 1 > + test_eval_ret_=1 > + want_trace > + test t = t > + test t = t > + set +x > error: last command exited with $?=1 > not ok 41 - git add --chmod=[+-]x changes index with already added file > # > # git reset --hard && > # echo foo >foo3 && > # git add foo3 && > # git add --chmod=+x foo3 && > # test_mode_in_index 100755 foo3 && > # echo foo >xfoo3 && > # chmod 755 xfoo3 && > # git add xfoo3 && > # git add --chmod=-x xfoo3 && > # test_mode_in_index 100644 xfoo3 > # > That's strange. The two changes don't seem to be related at all: diff --git a/t/t3700-add.sh b/t/t3700-add.sh index f3a4b4a913..06e3835efb 100755 --- a/t/t3700-add.sh +++ b/t/t3700-add.sh @@ -331,9 +331,8 @@ test_expect_success 'git add --dry-run --ignore-missing of non-existing file out test_i18ncmp expect.err actual.err ' -test_expect_success 'git add empty string should invoke warning' ' - git add "" 2>output && - test_i18ngrep "warning: empty strings" output +test_expect_success 'git add empty string should fail' ' + test_must_fail git add "" ' test_expect_success 'git add --chmod=[+-]x stages correctly' ' @@ -355,7 +354,7 @@ test_expect_success POSIXPERM,SYMLINKS 'git add --chmod=+x with symlinks' ' ' test_expect_success 'git add --chmod=[+-]x changes index with already added file' ' - rm -f foo3 xfoo3 && + git reset --hard && echo foo >foo3 && git add foo3 && git add --chmod=+x foo3 && The only difference I can see being introduced with the first change is that the file "output" is gone now. Does it help to add the "rm -f foo3 xfoo3 &&" back, in addition to the "git reset --hard"? Thanks, René