Does "git bisect" work for anyone?

Simon Marchi simark@simark.ca
Tue Oct 6 21:29:34 GMT 2020


On 2020-10-03 9:57 a.m., H.J. Lu via Gdb wrote:
> On Fri, Oct 2, 2020 at 11:27 PM Andreas Schwab <schwab@linux-m68k.org> wrote:
>>
>> On Okt 02 2020, H.J. Lu via Binutils wrote:
>>
>>> On master branch, I got
>>>
>>> $ git checkout d0e70c4189d5d6a6e63b85c1d3c10c74852173b4
>>> Previous HEAD position was 5a805384b83 asan: readelf buffer overflow and abort
>>> HEAD is now at d0e70c4189d Automatic date update in version.in
>>> $ git bisect good
>>> $ git checkout fe07b5721a64a84e36ec63e15638b87655faf1bf
>>> Previous HEAD position was d0e70c4189d Automatic date update in version.in
>>> HEAD is now at fe07b5721a6 gdb/testsuite: Update test pattern in
>>> ptype-on-functions.exp
>>> $ git bisect bad
>>> Some good revs are not ancestors of the bad rev.
>>
>> Git told you the reason.
>>
>> $ git rev-list d0e70c4189d5d6a6e63b85c1d3c10c74852173b4..fe07b5721a64a84e36ec63e15638b87655faf1bf | wc -l
>> 0
>
> How did this happen?  Joel, shouldn't git commit hook check non-empty
> forward and backward git rev-list outputs to support git bisect?

What does that mean?  How can you have both forward and backward
rev-list non-empty?

It's just that you got the revs backwards.  By default, "good" must be
older than "bad".  If that's confusing, because you are investigating
when a fix was introduced (and therefore, your "bad" is older than your
"good"), you can change the terms to use something else than "good" and
"bad".  For example:

    $  git bisect start --term-old my_bad --term-new my_good
    $  git bisect my_bad fe07b5721a64a84e36ec63e15638b87655faf1bf
    $  git bisect my_good d0e70c4189d5d6a6e63b85c1d3c10c74852173b4
    Bisecting: 115 revisions left to test after this (roughly 7 steps)
    [e148b73013109517c4d179aa9ae5a50b6d1dd5b5] libctf: drop error-prone ctf_strerror

Simon


More information about the Gdb mailing list