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é