{"thread":{"id":"46540","subject":"t3700 broken on pu on Cygwin","startedAt":"2017-08-08T15:18:22Z","lastAt":"2017-08-09T09:47:29Z","messageCount":4,"participants":["Adam Dinwoodie","René Scharfe"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"325808","messageId":"20170808151808.GA32640@dinwoodie.org","threadId":"46540","inReplyTo":null,"subject":"t3700 broken on pu on Cygwin","fromName":"Adam Dinwoodie","fromEmail":"adam@dinwoodie.org","sentAt":"2017-08-08T15:18:08Z","receivedAt":"2017-08-08T15:18:22Z","isPatch":false,"sender":{"key":"adam@dinwoodie.org","avatar":"https://avatars.githubusercontent.com/u/1397507?v=4"},"body":"The t3700-add.sh test is currently failing on the pu branch on Cygwin.\nTo my surprise, the problem appears to have been introduced by a merge,\n867fa1d6a.  Both parents of that merge have the test succeeding, but\nit's failing on that merge commit.\n\nFailing test output below:\n\n    $ ./t3700-add.sh -i --verbose-only=41 -x\n    Initialized empty Git repository in /home/add/vcs/git/x64/t/trash directory.t3700-add/.git/\n    ok 1 - Test of git add\n    ok 2 - Post-check that foo is in the index\n    ok 3 - Test that \"git add -- -q\" works\n    ok 4 - git add: Test that executable bit is not used if core.filemode=0\n    ok 5 - git add: filemode=0 should not get confused by symlink\n    ok 6 - git update-index --add: Test that executable bit is not used...\n    ok 7 - git add: filemode=0 should not get confused by symlink\n    ok 8 - git update-index --add: Test that executable bit is not used...\n    ok 9 - .gitignore test setup\n    ok 10 - .gitignore is honored\n    ok 11 - error out when attempting to add ignored ones without -f\n    ok 12 - error out when attempting to add ignored ones without -f\n    ok 13 - error out when attempting to add ignored ones but add others\n    ok 14 - add ignored ones with -f\n    ok 15 - add ignored ones with -f\n    ok 16 - add ignored ones with -f\n    ok 17 - .gitignore with subdirectory\n    ok 18 - check correct prefix detection\n    ok 19 - git add with filemode=0, symlinks=0, and unmerged entries\n    ok 20 - git add with filemode=0, symlinks=0 prefers stage 2 over stage 1\n    ok 21 - git add --refresh\n    ok 22 - git add --refresh with pathspec\n    ok 23 # skip git add should fail atomically upon an unreadable file (missing SANITY of POSIXPERM,SANITY)\n    ok 24 # skip git add --ignore-errors (missing SANITY of POSIXPERM,SANITY)\n    ok 25 # skip git add (add.ignore-errors) (missing SANITY of POSIXPERM,SANITY)\n    ok 26 # skip git add (add.ignore-errors = false) (missing SANITY of POSIXPERM,SANITY)\n    ok 27 # skip --no-ignore-errors overrides config (missing SANITY of POSIXPERM,SANITY)\n    ok 28 # skip git add 'fo\\[ou\\]bar' ignores foobar (missing BSLASHPSPEC)\n    ok 29 - git add to resolve conflicts on otherwise ignored path\n    ok 30 - \"add non-existent\" should fail\n    ok 31 - git add -A on empty repo does not error out\n    ok 32 - \"git add .\" in empty repo\n    ok 33 - git add --dry-run of existing changed file\n    ok 34 - git add --dry-run of non-existing file\n    ok 35 - git add --dry-run of an existing file output\n    ok 36 - git add --dry-run --ignore-missing of non-existing file\n    ok 37 - git add --dry-run --ignore-missing of non-existing file output\n    ok 38 - git add empty string should fail\n    ok 39 - git add --chmod=[+-]x stages correctly\n    ok 40 - git add --chmod=+x with symlinks\n\n    expecting success:\n    \t\tgit reset --hard &&\n    \t\techo foo >foo3 &&\n    \t\tgit add foo3 &&\n    \t\tgit add --chmod=+x foo3 &&\n    \t\ttest_mode_in_index 100755 foo3 &&\n    \t\techo foo >xfoo3 &&\n    \t\tchmod 755 xfoo3 &&\n    \t\tgit add xfoo3 &&\n    \t\tgit add --chmod=-x xfoo3 &&\n    \t\ttest_mode_in_index 100644 xfoo3\n\n    ++ git reset --hard\n    HEAD is now at d12df1f commit all\n    ++ echo foo\n    ++ git add foo3\n    ++ git add --chmod=+x foo3\n    ++ test_mode_in_index 100755 foo3\n    ++ case \"$(git ls-files -s \"$2\")\" in\n    +++ git ls-files -s foo3\n    ++ echo pass\n    pass\n    ++ echo foo\n    ++ chmod 755 xfoo3\n    ++ git add xfoo3\n    ++ git add --chmod=-x xfoo3\n    cannot chmod 'xfoo3'++ test_mode_in_index 100644 xfoo3\n    ++ case \"$(git ls-files -s \"$2\")\" in\n    +++ git ls-files -s xfoo3\n    ++ echo fail\n    fail\n    ++ git ls-files -s xfoo3\n    120000 c5c4ca97a3a080c32920941b665e94a997901491 0       xfoo3\n    ++ return 1\n    + test_eval_ret_=1\n    + want_trace\n    + test t = t\n    + test t = t\n    + set +x\n    error: last command exited with $?=1\n    not ok 41 - git add --chmod=[+-]x changes index with already added file\n    #\n    #               git reset --hard &&\n    #               echo foo >foo3 &&\n    #               git add foo3 &&\n    #               git add --chmod=+x foo3 &&\n    #               test_mode_in_index 100755 foo3 &&\n    #               echo foo >xfoo3 &&\n    #               chmod 755 xfoo3 &&\n    #               git add xfoo3 &&\n    #               git add --chmod=-x xfoo3 &&\n    #               test_mode_in_index 100644 xfoo3\n    #\n"},{"id":"325810","messageId":"25c23536-50a3-5a59-756f-e5c48ac1a342@web.de","threadId":"46540","inReplyTo":"20170808151808.GA32640@dinwoodie.org","subject":"Re: t3700 broken on pu on Cygwin","fromName":"René Scharfe","fromEmail":"l.s.r@web.de","sentAt":"2017-08-08T15:32:21Z","receivedAt":"2017-08-08T15:32:33Z","isPatch":false,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Am 08.08.2017 um 17:18 schrieb Adam Dinwoodie:\n> The t3700-add.sh test is currently failing on the pu branch on Cygwin.\n> To my surprise, the problem appears to have been introduced by a merge,\n> 867fa1d6a.  Both parents of that merge have the test succeeding, but\n> it's failing on that merge commit.\n> \n> Failing test output below:\n\n>      expecting success:\n>      \t\tgit reset --hard &&\n>      \t\techo foo >foo3 &&\n>      \t\tgit add foo3 &&\n>      \t\tgit add --chmod=+x foo3 &&\n>      \t\ttest_mode_in_index 100755 foo3 &&\n>      \t\techo foo >xfoo3 &&\n>      \t\tchmod 755 xfoo3 &&\n>      \t\tgit add xfoo3 &&\n>      \t\tgit add --chmod=-x xfoo3 &&\n>      \t\ttest_mode_in_index 100644 xfoo3\n> \n>      ++ git reset --hard\n>      HEAD is now at d12df1f commit all\n>      ++ echo foo\n>      ++ git add foo3\n>      ++ git add --chmod=+x foo3\n>      ++ test_mode_in_index 100755 foo3\n>      ++ case \"$(git ls-files -s \"$2\")\" in\n>      +++ git ls-files -s foo3\n>      ++ echo pass\n>      pass\n>      ++ echo foo\n>      ++ chmod 755 xfoo3\n>      ++ git add xfoo3\n>      ++ git add --chmod=-x xfoo3\n>      cannot chmod 'xfoo3'++ test_mode_in_index 100644 xfoo3\n>      ++ case \"$(git ls-files -s \"$2\")\" in\n>      +++ git ls-files -s xfoo3\n>      ++ echo fail\n>      fail\n>      ++ git ls-files -s xfoo3\n>      120000 c5c4ca97a3a080c32920941b665e94a997901491 0       xfoo3\n>      ++ return 1\n>      + test_eval_ret_=1\n>      + want_trace\n>      + test t = t\n>      + test t = t\n>      + set +x\n>      error: last command exited with $?=1\n>      not ok 41 - git add --chmod=[+-]x changes index with already added file\n>      #\n>      #               git reset --hard &&\n>      #               echo foo >foo3 &&\n>      #               git add foo3 &&\n>      #               git add --chmod=+x foo3 &&\n>      #               test_mode_in_index 100755 foo3 &&\n>      #               echo foo >xfoo3 &&\n>      #               chmod 755 xfoo3 &&\n>      #               git add xfoo3 &&\n>      #               git add --chmod=-x xfoo3 &&\n>      #               test_mode_in_index 100644 xfoo3\n>      #\n> \n\nThat's strange.  The two changes don't seem to be related at all:\n\n  diff --git a/t/t3700-add.sh b/t/t3700-add.sh\n  index f3a4b4a913..06e3835efb 100755\n  --- a/t/t3700-add.sh\n  +++ b/t/t3700-add.sh\n  @@ -331,9 +331,8 @@ test_expect_success 'git add --dry-run --ignore-missing of non-existing file out\n          test_i18ncmp expect.err actual.err\n   '\n  \n  -test_expect_success 'git add empty string should invoke warning' '\n  -       git add \"\" 2>output &&\n  -       test_i18ngrep \"warning: empty strings\" output\n  +test_expect_success 'git add empty string should fail' '\n  +       test_must_fail git add \"\"\n   '\n  \n   test_expect_success 'git add --chmod=[+-]x stages correctly' '\n  @@ -355,7 +354,7 @@ test_expect_success POSIXPERM,SYMLINKS 'git add --chmod=+x with symlinks' '\n   '\n  \n   test_expect_success 'git add --chmod=[+-]x changes index with already added file' '\n  -       rm -f foo3 xfoo3 &&\n  +       git reset --hard &&\n          echo foo >foo3 &&\n          git add foo3 &&\n          git add --chmod=+x foo3 &&\n\nThe only difference I can see being introduced with the first change\nis that the file \"output\" is gone now.\n\nDoes it help to add the \"rm -f foo3 xfoo3 &&\" back, in addition to\nthe \"git reset --hard\"?\n\nThanks,\nRené\n"},{"id":"325821","messageId":"20170808172524.GC32640@dinwoodie.org","threadId":"46540","inReplyTo":"25c23536-50a3-5a59-756f-e5c48ac1a342@web.de","subject":"Re: t3700 broken on pu on Cygwin","fromName":"Adam Dinwoodie","fromEmail":"adam@dinwoodie.org","sentAt":"2017-08-08T17:25:24Z","receivedAt":"2017-08-08T17:25:32Z","isPatch":false,"sender":{"key":"adam@dinwoodie.org","avatar":"https://avatars.githubusercontent.com/u/1397507?v=4"},"body":"On Tue, Aug 08, 2017 at 05:32:21PM +0200, René Scharfe wrote:\n> Am 08.08.2017 um 17:18 schrieb Adam Dinwoodie:\n> > The t3700-add.sh test is currently failing on the pu branch on Cygwin.\n> > To my surprise, the problem appears to have been introduced by a merge,\n> > 867fa1d6a.  Both parents of that merge have the test succeeding, but\n> > it's failing on that merge commit.\n> > \n> > Failing test output below:\n> \n> >      expecting success:\n> >      \t\tgit reset --hard &&\n> >      \t\techo foo >foo3 &&\n> >      \t\tgit add foo3 &&\n> >      \t\tgit add --chmod=+x foo3 &&\n> >      \t\ttest_mode_in_index 100755 foo3 &&\n> >      \t\techo foo >xfoo3 &&\n> >      \t\tchmod 755 xfoo3 &&\n> >      \t\tgit add xfoo3 &&\n> >      \t\tgit add --chmod=-x xfoo3 &&\n> >      \t\ttest_mode_in_index 100644 xfoo3\n> > \n> >      ++ git reset --hard\n> >      HEAD is now at d12df1f commit all\n> >      ++ echo foo\n> >      ++ git add foo3\n> >      ++ git add --chmod=+x foo3\n> >      ++ test_mode_in_index 100755 foo3\n> >      ++ case \"$(git ls-files -s \"$2\")\" in\n> >      +++ git ls-files -s foo3\n> >      ++ echo pass\n> >      pass\n> >      ++ echo foo\n> >      ++ chmod 755 xfoo3\n> >      ++ git add xfoo3\n> >      ++ git add --chmod=-x xfoo3\n> >      cannot chmod 'xfoo3'++ test_mode_in_index 100644 xfoo3\n> >      ++ case \"$(git ls-files -s \"$2\")\" in\n> >      +++ git ls-files -s xfoo3\n> >      ++ echo fail\n> >      fail\n> >      ++ git ls-files -s xfoo3\n> >      120000 c5c4ca97a3a080c32920941b665e94a997901491 0       xfoo3\n> >      ++ return 1\n> >      + test_eval_ret_=1\n> >      + want_trace\n> >      + test t = t\n> >      + test t = t\n> >      + set +x\n> >      error: last command exited with $?=1\n> >      not ok 41 - git add --chmod=[+-]x changes index with already added file\n> >      #\n> >      #               git reset --hard &&\n> >      #               echo foo >foo3 &&\n> >      #               git add foo3 &&\n> >      #               git add --chmod=+x foo3 &&\n> >      #               test_mode_in_index 100755 foo3 &&\n> >      #               echo foo >xfoo3 &&\n> >      #               chmod 755 xfoo3 &&\n> >      #               git add xfoo3 &&\n> >      #               git add --chmod=-x xfoo3 &&\n> >      #               test_mode_in_index 100644 xfoo3\n> >      #\n> > \n> \n> That's strange.  The two changes don't seem to be related at all:\n> \n>   diff --git a/t/t3700-add.sh b/t/t3700-add.sh\n>   index f3a4b4a913..06e3835efb 100755\n>   --- a/t/t3700-add.sh\n>   +++ b/t/t3700-add.sh\n>   @@ -331,9 +331,8 @@ test_expect_success 'git add --dry-run --ignore-missing of non-existing file out\n>           test_i18ncmp expect.err actual.err\n>    '\n>   \n>   -test_expect_success 'git add empty string should invoke warning' '\n>   -       git add \"\" 2>output &&\n>   -       test_i18ngrep \"warning: empty strings\" output\n>   +test_expect_success 'git add empty string should fail' '\n>   +       test_must_fail git add \"\"\n>    '\n>   \n>    test_expect_success 'git add --chmod=[+-]x stages correctly' '\n>   @@ -355,7 +354,7 @@ test_expect_success POSIXPERM,SYMLINKS 'git add --chmod=+x with symlinks' '\n>    '\n>   \n>    test_expect_success 'git add --chmod=[+-]x changes index with already added file' '\n>   -       rm -f foo3 xfoo3 &&\n>   +       git reset --hard &&\n>           echo foo >foo3 &&\n>           git add foo3 &&\n>           git add --chmod=+x foo3 &&\n> \n> The only difference I can see being introduced with the first change\n> is that the file \"output\" is gone now.\n\nYep!  I thought it was strange too.  I spent some time undoing and\nredoing the changes to check the problem was reproducible.\n\n> Does it help to add the \"rm -f foo3 xfoo3 &&\" back, in addition to\n> the \"git reset --hard\"?\n\nApparently so.  Including only the output from that test:\n\n    expecting success:\n            rm -f foo3 xfoo3 &&\n            git reset --hard &&\n            echo foo >foo3 &&\n            git add foo3 &&\n            git add --chmod=+x foo3 &&\n            test_mode_in_index 100755 foo3 &&\n            echo foo >xfoo3 &&\n            chmod 755 xfoo3 &&\n            git add xfoo3 &&\n            git add --chmod=-x xfoo3 &&\n            test_mode_in_index 100644 xfoo3\n    \n    ++ rm -f foo3 xfoo3\n    ++ git reset --hard\n    HEAD is now at 02bfd98 commit all\n    ++ echo foo\n    ++ git add foo3\n    ++ git add --chmod=+x foo3\n    ++ test_mode_in_index 100755 foo3\n    ++ case \"$(git ls-files -s \"$2\")\" in\n    +++ git ls-files -s foo3\n    ++ echo pass\n    pass\n    ++ echo foo\n    ++ chmod 755 xfoo3\n    ++ git add xfoo3\n    ++ git add --chmod=-x xfoo3\n    ++ test_mode_in_index 100644 xfoo3\n    ++ case \"$(git ls-files -s \"$2\")\" in\n    +++ git ls-files -s xfoo3\n    ++ echo pass\n    pass\n    + test_eval_ret_=0\n    + want_trace\n    + test t = t\n    + test t = t\n    + set +x\n    ok 41 - git add --chmod=[+-]x changes index with already added file\n\nI'm running a bisect overnight to try to isolate the commit on the left\nmerge parent that seems to be interacting badly with the commit on the\nright, and will send in the results from that when I have them.\n"},{"id":"325929","messageId":"20170809094717.GD32640@dinwoodie.org","threadId":"46540","inReplyTo":"20170808172524.GC32640@dinwoodie.org","subject":"Re: t3700 broken on pu on Cygwin","fromName":"Adam Dinwoodie","fromEmail":"adam@dinwoodie.org","sentAt":"2017-08-09T09:47:17Z","receivedAt":"2017-08-09T09:47:29Z","isPatch":false,"sender":{"key":"adam@dinwoodie.org","avatar":"https://avatars.githubusercontent.com/u/1397507?v=4"},"body":"On Tue, Aug 08, 2017 at 06:25:24PM +0100, Adam Dinwoodie wrote:\n> I'm running a bisect overnight to try to isolate the commit on the left\n> merge parent that seems to be interacting badly with the commit on the\n> right, and will send in the results from that when I have them.\n\nFor the sake of interest, I've tracked down the problem to commit\nv2.9.0-3-g9e4e8a64c.  That changed t3700 so it would no longer add all\nextant paths to the index, meaning a later `git reset --hard` wouldn't\nremove them.\n"}]}