# git bisect outputs list of commits in the wrong order

4 messages from 2022-06-10 to 2022-06-10. Participants: Volker Weißmann, Junio C Hamano, Jeff King.
Thread: https://gitlist.dev/t/57982

## Volker Weißmann, 2022-06-10 16:01

Subject: git bisect outputs list of commits in the wrong order
Message-ID: <3352fbbd-d555-fc51-1eac-692fdb5e4ae0@gmx.de>
URL: https://gitlist.dev/e/3352fbbd-d555-fc51-1eac-692fdb5e4ae0%40gmx.de

```
If you use `git bisect` and `git bisect skip`, you might get an output
like this:

There are only 'skip'ped commits left to test.
The first bad commit could be any of:
01f793267a9af328f0f1af2cdb88301a08f007b2
a87784e29411e8b08059fdc79629e64de3002c99
af0df663440796a0580644493c15290405e60ecd
4f34b8cd48e2a814263efb319fe5dbab91215aed
f3d91e38a45f0a2ec5affb884d536c9c4e5bb290
13526e1b0e1b11a2e30e44ccf35fbf92ffb61372
abee97622db5301d593265ff6e2009777b09221e
b63700f09a422f01d954967b84c5e662881352eb
We cannot bisect more!

While the output is correct, I don't like the fact that the commits are
not in chronological order. Is there a reason for this? Chronological
order makes sense and would make it easier to find the first known bad
and the last known good commit.


```

## Junio C Hamano, 2022-06-10 17:28

Subject: Re: git bisect outputs list of commits in the wrong order
Message-ID: <xmqqsfoce8d7.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqsfoce8d7.fsf%40gitster.g
In-Reply-To: <3352fbbd-d555-fc51-1eac-692fdb5e4ae0@gmx.de>

```
Volker Weißmann <volker.weissmann@gmx.de> writes:

> If you use `git bisect` and `git bisect skip`, you might get an output
> like this:
>
> There are only 'skip'ped commits left to test.
> The first bad commit could be any of:
> 01f793267a9af328f0f1af2cdb88301a08f007b2
> a87784e29411e8b08059fdc79629e64de3002c99
> af0df663440796a0580644493c15290405e60ecd
> 4f34b8cd48e2a814263efb319fe5dbab91215aed
> f3d91e38a45f0a2ec5affb884d536c9c4e5bb290
> 13526e1b0e1b11a2e30e44ccf35fbf92ffb61372
> abee97622db5301d593265ff6e2009777b09221e
> b63700f09a422f01d954967b84c5e662881352eb
> We cannot bisect more!
>
> While the output is correct, I don't like the fact that the commits are
> not in chronological order. Is there a reason for this? Chronological
> order makes sense and would make it easier to find the first known bad
> and the last known good commit.

Thanks for a report.

I looked at an "scripted" version in the ancient past and it seems
to have computed by iterating over

	git rev-list bisect/bad --not $good_revs

which would have given these intermediate ones roughly in the
reverse chronological order.  It could be that the behaviour
regressed when the scripted version was rewritten in C, but I dunno.

Christian (as an "area" expert for bisect), do you have any
comments?

Thanks.




```

## Jeff King, 2022-06-10 18:11

Subject: Re: git bisect outputs list of commits in the wrong order
Message-ID: <YqOJQKSH4eTo4cGn@coredump.intra.peff.net>
URL: https://gitlist.dev/e/YqOJQKSH4eTo4cGn%40coredump.intra.peff.net
In-Reply-To: <xmqqsfoce8d7.fsf@gitster.g>

```
On Fri, Jun 10, 2022 at 10:28:04AM -0700, Junio C Hamano wrote:

> I looked at an "scripted" version in the ancient past and it seems
> to have computed by iterating over
> 
> 	git rev-list bisect/bad --not $good_revs
> 
> which would have given these intermediate ones roughly in the
> reverse chronological order.  It could be that the behaviour
> regressed when the scripted version was rewritten in C, but I dunno.
> 
> Christian (as an "area" expert for bisect), do you have any
> comments?

It would probably be nice to show them as --oneline, as well. I'd guess
that a human reading the subjects of a handful of commits could quickly
make a good guess as to the actual culprit.

-Peff

```

## Junio C Hamano, 2022-06-10 18:33

Subject: Re: git bisect outputs list of commits in the wrong order
Message-ID: <xmqqmteke5cv.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqmteke5cv.fsf%40gitster.g
In-Reply-To: <YqOJQKSH4eTo4cGn@coredump.intra.peff.net>

```
Jeff King <peff@peff.net> writes:

> On Fri, Jun 10, 2022 at 10:28:04AM -0700, Junio C Hamano wrote:
>
>> I looked at an "scripted" version in the ancient past and it seems
>> to have computed by iterating over
>> 
>> 	git rev-list bisect/bad --not $good_revs
>> 
>> which would have given these intermediate ones roughly in the
>> reverse chronological order.  It could be that the behaviour
>> regressed when the scripted version was rewritten in C, but I dunno.
>> 
>> Christian (as an "area" expert for bisect), do you have any
>> comments?
>
> It would probably be nice to show them as --oneline, as well. I'd guess
> that a human reading the subjects of a handful of commits could quickly
> make a good guess as to the actual culprit.

True, too.

The scripted version fed the output from above iteration each to
"show-branch" (as "git log --oneline" was probably not so widely
used or may not have been available back then), to make them human
readable.  We should be able to use pretty.c::pretty_print_commit()
with CMT_FMT_ONELINE to do that more easily these days.

By the way, welcome back ;-)



```
