Re: git-bisect problem
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:19
Andrew Morton [off-list ref] writes:
The bug is in Jeff's tree only (git+ssh://master.kernel.org/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git#ALL) so I wanted to perform the bisection on the git-netdev-all branch. So I did a `git log git-netdev-all' and looked at where the ipw2200 changes were and then decided that the 2.6.16-rc1 and 2.6.16-rc2 commits straddled those changes nicely, so I chose those as the bisection starting points.
Ah. Jeff merges from Linus and that causes things on Linus tree
to appear in his tree. So you saw -rc1 and -rc2 in the output,
but neither of them may contain the problematic change, and are
not good/bad pair at all. They are probably both good ones.
git log output is chronological and there is no guarantee that
the ordering has much to do with the actual ordering of commits,
especially when merges are involved. In fact, "Jeff's tree
only" suggests to me that 2.6.16-rc2 has not merged those
changes, but you thought (arguably rightly so) rc1 and rc2
straddled them.
-rc1 -rc2
---o---o---o---o---o---o---o---o---o---o---o---o--- Linus
\
\
---o---o---o---*---o---o---o---*---o---o---o---o--- Jeff
<- ipw2200 ->
So you would want to perhaps pick two commits like the above *
and bisect. If the one marked as bad on the Linus tree
initially (-rc2) is not bad and does not reach the allegedly bad
commit on Jeff's line, there is no way for bisect to find it.
If you are suspecting ipw2200, 2f633db and 747af1e might be a
pair of good anchor points to start bisecting.
The way I came up with these two; I should be using gitk for
this kind of thing, but I do not work in X during daytime, so I
am guessing these from:
$ git rev-list --pretty=oneline linus..garzik/netdev |
grep -C4 -i ipw2200 | less
This gets the list of commits that are on Jeff's tree but not in
Linus' in reverse chrono order, and grabs ones with ipw2200 in
their titles. It shows that 2f633db is (close to) the latest
that touches ipw2200, and 747af1e is (close to) the reasonably
old that touches ipw2200. As a review of these two points, I
did this:
$ git log 747af1e..2f633db
Hope it helps this time...