Re: Git Bug Report: bisect run failed to locate the right commit, detail testing

2014-08-28 Thread Christian Couder
Hi,

On Thu, Aug 28, 2014 at 3:49 AM, 李祐棠 r01942...@ntu.edu.tw wrote:
 Dear git developers:

 Allow me to describe the testing situation more detail:

 First the testing repository is in
 https://github.com/gawel/pyquery
 my git version is 1.9.2 running on Archlinux 3.14.2

 I try to track issue #74(which is closed now)
 It give result False/True in version 1.2.8(good), and result False/False in 
 version 1.2.9(bad).

 The testing script are manualscript.py and autoscript.py
 Both of them implement the test case describe in issue #74.
 Th only difference is that autoscript.py call sys.exit() to return the 
 testing value.

 First we test with git-bisect manually with manualscript.py:
 The testing result is shown in 'bisectmanual_manualscript'

 Then we test with git-bisect manually with autoscript.py
 This time we echo $? every time we execute autoscript.py, and the testing 
 result is shown in 'bisectmanual_autoscript'

 In both situation the script give the same result, and the return value of 
 autoscript.py is correct, too.

 However, if we use git-bisect-run with autoscript.py, it will show a 
 different result. The testing result is shown in 'bisectrun'.
 The log shows that autoscript.py output False/False all the way.
 As Mr. Couder said, there is some checkout commit that autoscript.py and 
 manualscript.py give different result, for example commit 
 d22159bb32510e9eacf6c5c2408a79792e99fe76.
 If I checkout this commit outside bisect state and run manualscript.py and 
 autoscript.py, they both give False/True result.
 So, I guess there is some problem in the checkout procedure in bisect-run, so 
 the commit didn't successfully checkout.

I don't think so.

I tried to run the following command many times in a row:

for rev in bc1b16509cec70de7a32354026443fca777f4d7d
b81a9e8a2b0d48ec0c64d6de14293dd4a680a20b
d22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python
-m pyquery.autoscript; done

And here is the log:

$ for rev in bc1b16509cec70de7a32354026443fca777f4d7d
b81a9e8a2b0d48ec0c64d6de14293dd4a680a20b
d22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python
-m pyquery.autoscript; done
Note: checking out 'bc1b16509cec70de7a32354026443fca777f4d7d'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at bc1b165... created a .gitignore file(which is almost a
copy of .hgignore with some minor changes and comments)
False
False
Previous HEAD position was bc1b165... created a .gitignore file(which
is almost a copy of .hgignore with some minor changes and comments)
HEAD is now at b81a9e8... fixed issue #9
False
False
Previous HEAD position was b81a9e8... fixed issue #9
HEAD is now at d22159b... test pseudo classes; documentation effort
False
True
$ for rev in bc1b16509cec70de7a32354026443fca777f4d7d
b81a9e8a2b0d48ec0c64d6de14293dd4a680a20b
d22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python
-m pyquery.autoscript; done
Previous HEAD position was d22159b... test pseudo classes; documentation effort
HEAD is now at bc1b165... created a .gitignore file(which is almost a
copy of .hgignore with some minor changes and comments)
False
False
Previous HEAD position was bc1b165... created a .gitignore file(which
is almost a copy of .hgignore with some minor changes and comments)
HEAD is now at b81a9e8... fixed issue #9
False
False
Previous HEAD position was b81a9e8... fixed issue #9
HEAD is now at d22159b... test pseudo classes; documentation effort
False
True
$ for rev in bc1b16509cec70de7a32354026443fca777f4d7d
b81a9e8a2b0d48ec0c64d6de14293dd4a680a20b
d22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python
-m pyquery.autoscript; done
Previous HEAD position was d22159b... test pseudo classes; documentation effort
HEAD is now at bc1b165... created a .gitignore file(which is almost a
copy of .hgignore with some minor changes and comments)
False
False
Previous HEAD position was bc1b165... created a .gitignore file(which
is almost a copy of .hgignore with some minor changes and comments)
HEAD is now at b81a9e8... fixed issue #9
False
False
Previous HEAD position was b81a9e8... fixed issue #9
HEAD is now at d22159b... test pseudo classes; documentation effort
False
False
$ for rev in bc1b16509cec70de7a32354026443fca777f4d7d
b81a9e8a2b0d48ec0c64d6de14293dd4a680a20b
d22159bb32510e9eacf6c5c2408a79792e99fe76; do git checkout $rev; python
-m pyquery.autoscript; done
Previous HEAD position was d22159b... test pseudo classes; documentation effort
HEAD is now at bc1b165... created a .gitignore file(which is almost a
copy of .hgignore with some minor changes and comments)
False
False
Previous HEAD position was 

Git Bug Report: bisect run failed to locate the right commit

2014-08-27 Thread 李祐棠
Dear Git developers:

I just found a suspicious bug that might cause by git-bisect run. 

Version:
The git version is 1.9.2, running on Archlinux 3.14.2

The step to produce the error:
Here is the repository I participate: 
https://github.com/gawel/pyquery

It got a issue #74, that gives a wrong result in version 1.2.8
and this is fixed in 1.2.9

Here is the manual test script I use is manualscript.py:

I use git bisect manually, search from 1.2.9(bad) to 1.2.8(good), I locate the 
commit that fixes this issue. The running log is attached in this file(manual).

However if I use the automatic script
git bisect run
with the script auto script:

It will give a wrong answer, the log file is also attached(auto)

I wonder there might be some bugs in bisect run, that give the different 
result. The bisect run give the wrong result, and manually there is no error in 
bisect

The test step is a little complicated, and I have to compress the test script 
and result in tar since mail server think the test code as spam. it's very 
sorry to bother you.

Sincerely 
YodaLee 

20140827

testfile.tar
Description: testfile.tar


Re: Git Bug Report: bisect run failed to locate the right commit

2014-08-27 Thread Jeff King
On Wed, Aug 27, 2014 at 01:42:45PM +, 李祐棠 wrote:

 Here is the manual test script I use is manualscript.py:
 
 I use git bisect manually, search from 1.2.9(bad) to 1.2.8(good), I
 locate the commit that fixes this issue. The running log is attached
 in this file(manual).
 
 However if I use the automatic script git bisect run with the script
 auto script:
 
 It will give a wrong answer, the log file is also attached(auto)

When you get to 300cd08225, your manual bisect shows this as bad:

  Bisecting: 0 revisions left to test after this (roughly 1 step)
  [300cd0822505a4bd308acd1520ff3ef0f20f8635] fixed issue #19
  $ ./manualscript.py 
  False
  False
  $ git bisect bad

When you hit the same commit with your automatic test, the output from
your script is different:

  Bisecting: 0 revisions left to test after this (roughly 1 step)
  [300cd0822505a4bd308acd1520ff3ef0f20f8635] fixed issue #19
  running ./autoscript.py
  False
  True

which would yield git bisect good according to the simplified scripts
you sent. I suspect your problem is in the test script.

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Git Bug Report: bisect run failed to locate the right commit

2014-08-27 Thread Christian Couder
Hi,

On Wed, Aug 27, 2014 at 3:42 PM, 李祐棠 r01942...@ntu.edu.tw wrote:
 Dear Git developers:

 I just found a suspicious bug that might cause by git-bisect run.

 Version:
 The git version is 1.9.2, running on Archlinux 3.14.2

 The step to produce the error:
 Here is the repository I participate:
 https://github.com/gawel/pyquery

 It got a issue #74, that gives a wrong result in version 1.2.8
 and this is fixed in 1.2.9

 Here is the manual test script I use is manualscript.py:

 I use git bisect manually, search from 1.2.9(bad) to 1.2.8(good), I locate 
 the commit that fixes this issue. The running log is attached in this 
 file(manual).

 However if I use the automatic script
 git bisect run
 with the script auto script:

 It will give a wrong answer, the log file is also attached(auto)

Your manual log contains:

Bisecting: 0 revisions left to test after this (roughly 1 step)
[300cd0822505a4bd308acd1520ff3ef0f20f8635] fixed issue #19
$ ./manualscript.py
False
False

While your auto log contains:

Bisecting: 0 revisions left to test after this (roughly 1 step)
[300cd0822505a4bd308acd1520ff3ef0f20f8635] fixed issue #19
running ./autoscript.py
False
True

So for the commit 300cd0822505a4bd308acd1520ff3ef0f20f8635 it looks
like your manualscript.py and your autoscript.py don't return the same
result.

Could you check that by doing something like:

$ git checkout -b testscripts 300cd0822505a4bd308acd1520ff3ef0f20f8635
$ ./manualscript.py
$ echo manualscript.py exit code: $?
$ ./autoscript.py
$ echo autoscript.py exit code: $?

?

By the way you can get a better bisect log by running git bisect log
after your bisection.

Best,
Christian.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Git Bug Report: bisect run failed to locate the right commit, detail testing

2014-08-27 Thread 李祐棠
Dear git developers:

Allow me to describe the testing situation more detail:

First the testing repository is in 
https://github.com/gawel/pyquery
my git version is 1.9.2 running on Archlinux 3.14.2

I try to track issue #74(which is closed now)
It give result False/True in version 1.2.8(good), and result False/False in 
version 1.2.9(bad).

The testing script are manualscript.py and autoscript.py
Both of them implement the test case describe in issue #74.
Th only difference is that autoscript.py call sys.exit() to return the testing 
value.

First we test with git-bisect manually with manualscript.py:
The testing result is shown in 'bisectmanual_manualscript'

Then we test with git-bisect manually with autoscript.py
This time we echo $? every time we execute autoscript.py, and the testing 
result is shown in 'bisectmanual_autoscript'

In both situation the script give the same result, and the return value of 
autoscript.py is correct, too.

However, if we use git-bisect-run with autoscript.py, it will show a different 
result. The testing result is shown in 'bisectrun'.
The log shows that autoscript.py output False/False all the way.
As Mr. Couder said, there is some checkout commit that autoscript.py and 
manualscript.py give different result, for example commit 
d22159bb32510e9eacf6c5c2408a79792e99fe76.
If I checkout this commit outside bisect state and run manualscript.py and 
autoscript.py, they both give False/True result.  
So, I guess there is some problem in the checkout procedure in bisect-run, so 
the commit didn't successfully checkout.

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.

Thank for helping.
Sincerely 
YodaLee
20140828


testfile.tar
Description: testfile.tar