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: $ ./t3700-add.sh -i --verbose-only=41 -x Initialized empty Git repository in /home/add/vcs/git/x64/t/trash directory.t3700-add/.git/ ok 1 - Test of git add ok 2 - Post-check that foo is in the index ok 3 - Test that "git add -- -q" works ok 4 - git add: Test that executable bit is not used if core.filemode=0 ok 5 - git add: filemode=0 should not get confused by symlink ok 6 - git update-index --add: Test that executable bit is not used... ok 7 - git add: filemode=0 should not get confused by symlink ok 8 - git update-index --add: Test that executable bit is not used... ok 9 - .gitignore test setup ok 10 - .gitignore is honored ok 11 - error out when attempting to add ignored ones without -f ok 12 - error out when attempting to add ignored ones without -f ok 13 - error out when attempting to add ignored ones but add others ok 14 - add ignored ones with -f ok 15 - add ignored ones with -f ok 16 - add ignored ones with -f ok 17 - .gitignore with subdirectory ok 18 - check correct prefix detection ok 19 - git add with filemode=0, symlinks=0, and unmerged entries ok 20 - git add with filemode=0, symlinks=0 prefers stage 2 over stage 1 ok 21 - git add --refresh ok 22 - git add --refresh with pathspec ok 23 # skip git add should fail atomically upon an unreadable file (missing SANITY of POSIXPERM,SANITY) ok 24 # skip git add --ignore-errors (missing SANITY of POSIXPERM,SANITY) ok 25 # skip git add (add.ignore-errors) (missing SANITY of POSIXPERM,SANITY) ok 26 # skip git add (add.ignore-errors = false) (missing SANITY of POSIXPERM,SANITY) ok 27 # skip --no-ignore-errors overrides config (missing SANITY of POSIXPERM,SANITY) ok 28 # skip git add 'fo\[ou\]bar' ignores foobar (missing BSLASHPSPEC) ok 29 - git add to resolve conflicts on otherwise ignored path ok 30 - "add non-existent" should fail ok 31 - git add -A on empty repo does not error out ok 32 - "git add ." in empty repo ok 33 - git add --dry-run of existing changed file ok 34 - git add --dry-run of non-existing file ok 35 - git add --dry-run of an existing file output ok 36 - git add --dry-run --ignore-missing of non-existing file ok 37 - git add --dry-run --ignore-missing of non-existing file output ok 38 - git add empty string should fail ok 39 - git add --chmod=[+-]x stages correctly ok 40 - git add --chmod=+x with symlinks 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 #