{"thread":{"id":"37433","subject":"Git Bug Report: bisect run failed to locate the right commit, detail testing","startedAt":"2014-08-28T01:49:11Z","lastAt":"2014-08-28T12:44:21Z","messageCount":2,"participants":["李祐棠","Christian Couder"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"248469","messageId":"C40A01C66E914D4EB90E1B40564B0E56CBFE30C9@MBOX2-4.ntu.internal","threadId":"37433","inReplyTo":null,"subject":"Git Bug Report: bisect run failed to locate the right commit, detail testing","fromName":"李祐棠","fromEmail":"r01942008@ntu.edu.tw","sentAt":"2014-08-28T01:49:11Z","receivedAt":"2014-08-28T01:49:11Z","isPatch":false,"sender":{"key":"r01942008@ntu.edu.tw","avatar":null},"body":"Dear git developers:\n\nAllow me to describe the testing situation more detail:\n\nFirst the testing repository is in \nhttps://github.com/gawel/pyquery\nmy git version is 1.9.2 running on Archlinux 3.14.2\n\nI try to track issue #74(which is closed now)\nIt give result False/True in version 1.2.8(good), and result False/False in version 1.2.9(bad).\n\nThe testing script are manualscript.py and autoscript.py\nBoth of them implement the test case describe in issue #74.\nTh only difference is that autoscript.py call sys.exit() to return the testing value.\n\nFirst we test with git-bisect manually with manualscript.py:\nThe testing result is shown in 'bisectmanual_manualscript'\n\nThen we test with git-bisect manually with autoscript.py\nThis time we echo $? every time we execute autoscript.py, and the testing result is shown in 'bisectmanual_autoscript'\n\nIn both situation the script give the same result, and the return value of autoscript.py is correct, too.\n\nHowever, if we use git-bisect-run with autoscript.py, it will show a different result. The testing result is shown in 'bisectrun'.\nThe log shows that autoscript.py output False/False all the way.\nAs Mr. Couder said, there is some checkout commit that autoscript.py and manualscript.py give different result, for example commit d22159bb32510e9eacf6c5c2408a79792e99fe76.\nIf I checkout this commit outside bisect state and run manualscript.py and autoscript.py, they both give False/True result.  \nSo, I guess there is some problem in the checkout procedure in bisect-run, so the commit didn't successfully checkout.\n\nps. I found this time the bisect run give me another version of output compared to the last version I sent to everybody OAO. That is weird.\n\nThank for helping.\nSincerely \nYodaLee\n20140828\n"},{"id":"248481","messageId":"CAP8UFD1KXC7KzV46VJZ=PY4SN39uEtDvJKm0k3VwCp0Rvp64aQ@mail.gmail.com","threadId":"37433","inReplyTo":"C40A01C66E914D4EB90E1B40564B0E56CBFE30C9@MBOX2-4.ntu.internal","subject":"Re: Git Bug Report: bisect run failed to locate the right commit, detail testing","fromName":"Christian Couder","fromEmail":"christian.couder@gmail.com","sentAt":"2014-08-28T12:44:21Z","receivedAt":"2014-08-28T12:44:21Z","isPatch":false,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"Hi,\n\nOn Thu, Aug 28, 2014 at 3:49 AM, 李祐棠 <r01942008@ntu.edu.tw> wrote:\n> Dear git developers:\n>\n> Allow me to describe the testing situation more detail:\n>\n> First the testing repository is in\n> https://github.com/gawel/pyquery\n> my git version is 1.9.2 running on Archlinux 3.14.2\n>\n> I try to track issue #74(which is closed now)\n> It give result False/True in version 1.2.8(good), and result False/False in version 1.2.9(bad).\n>\n> The testing script are manualscript.py and autoscript.py\n> Both of them implement the test case describe in issue #74.\n> Th only difference is that autoscript.py call sys.exit() to return the testing value.\n>\n> First we test with git-bisect manually with manualscript.py:\n> The testing result is shown in 'bisectmanual_manualscript'\n>\n> Then we test with git-bisect manually with autoscript.py\n> This time we echo $? every time we execute autoscript.py, and the testing result is shown in 'bisectmanual_autoscript'\n>\n> In both situation the script give the same result, and the return value of autoscript.py is correct, too.\n>\n> However, if we use git-bisect-run with autoscript.py, it will show a different result. The testing result is shown in 'bisectrun'.\n> The log shows that autoscript.py output False/False all the way.\n> As Mr. Couder said, there is some checkout commit that autoscript.py and manualscript.py give different result, for example commit d22159bb32510e9eacf6c5c2408a79792e99fe76.\n> If I checkout this commit outside bisect state and run manualscript.py and autoscript.py, they both give False/True result.\n> So, I guess there is some problem in the checkout procedure in bisect-run, so the commit didn't successfully checkout.\n\nI don't think so.\n\nI tried to run the following command many times in a row:\n\nfor rev in bc1b16509cec70de7a32354026443fca777f4d7d\nb81a9e8a2b0d48ec0c64d6de14293dd4a680a20b\nd22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python\n-m pyquery.autoscript; done\n\nAnd here is the log:\n\n$ for rev in bc1b16509cec70de7a32354026443fca777f4d7d\nb81a9e8a2b0d48ec0c64d6de14293dd4a680a20b\nd22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python\n-m pyquery.autoscript; done\nNote: checking out 'bc1b16509cec70de7a32354026443fca777f4d7d'.\n\nYou are in 'detached HEAD' state. You can look around, make experimental\nchanges and commit them, and you can discard any commits you make in this\nstate without impacting any branches by performing another checkout.\n\nIf you want to create a new branch to retain commits you create, you may\ndo so (now or later) by using -b with the checkout command again. Example:\n\n  git checkout -b new_branch_name\n\nHEAD is now at bc1b165... created a .gitignore file(which is almost a\ncopy of .hgignore with some minor changes and comments)\nFalse\nFalse\nPrevious HEAD position was bc1b165... created a .gitignore file(which\nis almost a copy of .hgignore with some minor changes and comments)\nHEAD is now at b81a9e8... fixed issue #9\nFalse\nFalse\nPrevious HEAD position was b81a9e8... fixed issue #9\nHEAD is now at d22159b... test pseudo classes; documentation effort\nFalse\nTrue\n$ for rev in bc1b16509cec70de7a32354026443fca777f4d7d\nb81a9e8a2b0d48ec0c64d6de14293dd4a680a20b\nd22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python\n-m pyquery.autoscript; done\nPrevious HEAD position was d22159b... test pseudo classes; documentation effort\nHEAD is now at bc1b165... created a .gitignore file(which is almost a\ncopy of .hgignore with some minor changes and comments)\nFalse\nFalse\nPrevious HEAD position was bc1b165... created a .gitignore file(which\nis almost a copy of .hgignore with some minor changes and comments)\nHEAD is now at b81a9e8... fixed issue #9\nFalse\nFalse\nPrevious HEAD position was b81a9e8... fixed issue #9\nHEAD is now at d22159b... test pseudo classes; documentation effort\nFalse\nTrue\n$ for rev in bc1b16509cec70de7a32354026443fca777f4d7d\nb81a9e8a2b0d48ec0c64d6de14293dd4a680a20b\nd22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python\n-m pyquery.autoscript; done\nPrevious HEAD position was d22159b... test pseudo classes; documentation effort\nHEAD is now at bc1b165... created a .gitignore file(which is almost a\ncopy of .hgignore with some minor changes and comments)\nFalse\nFalse\nPrevious HEAD position was bc1b165... created a .gitignore file(which\nis almost a copy of .hgignore with some minor changes and comments)\nHEAD is now at b81a9e8... fixed issue #9\nFalse\nFalse\nPrevious HEAD position was b81a9e8... fixed issue #9\nHEAD is now at d22159b... test pseudo classes; documentation effort\nFalse\nFalse\n$ for rev in bc1b16509cec70de7a32354026443fca777f4d7d\nb81a9e8a2b0d48ec0c64d6de14293dd4a680a20b\nd22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python\n-m pyquery.autoscript; done\nPrevious HEAD position was d22159b... test pseudo classes; documentation effort\nHEAD is now at bc1b165... created a .gitignore file(which is almost a\ncopy of .hgignore with some minor changes and comments)\nFalse\nFalse\nPrevious HEAD position was bc1b165... created a .gitignore file(which\nis almost a copy of .hgignore with some minor changes and comments)\nHEAD is now at b81a9e8... fixed issue #9\nFalse\nFalse\nPrevious HEAD position was b81a9e8... fixed issue #9\nHEAD is now at d22159b... test pseudo classes; documentation effort\nFalse\nTrue\n$ for rev in bc1b16509cec70de7a32354026443fca777f4d7d\nb81a9e8a2b0d48ec0c64d6de14293dd4a680a20b\nd22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python\n-m pyquery.autoscript; done\nPrevious HEAD position was d22159b... test pseudo classes; documentation effort\nHEAD is now at bc1b165... created a .gitignore file(which is almost a\ncopy of .hgignore with some minor changes and comments)\nFalse\nFalse\nPrevious HEAD position was bc1b165... created a .gitignore file(which\nis almost a copy of .hgignore with some minor changes and comments)\nHEAD is now at b81a9e8... fixed issue #9\nFalse\nFalse\nPrevious HEAD position was b81a9e8... fixed issue #9\nHEAD is now at d22159b... test pseudo classes; documentation effort\nFalse\nFalse\n\nAs you can see the result of running the autoscript.py on commit\nd22159b is sometimes \"False False\" and sometimes \"False True\".\n\nBisecting cannot work properly if the result is not stable.\n\n> ps. I found this time the bisect run give me another version of output compared to the last version I sent to everybody OAO. That is weird.\n\nYeah but I doubt it is a git bisect problem or a git checkout problem.\n\nIt looks like it is a cleanup problem, because it looks much more stable with:\n\nfor rev in bc1b16509cec70de7a32354026443fca777f4d7d\nb81a9e8a2b0d48ec0c64d6de14293dd4a680a20b\nd22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; git\nclean -dfx; cp ../testresult/autoscript.py pyquery/; python -m\npyquery.autoscript; done\n\nBest,\nChristian.\n"}]}