Some good revs are not ancestor of the bad rev.

Posted on 2015-03-11 tags: git

1
2
3
git bisect start
git bisect good 98765432
git bisect bad 12345678

すると

1
2
3
Some good revs are not ancestor of the bad rev.
git bisect cannot work properly in this case.
Maybe you mistake good and bad revs?

と言われることがあります。本人は至ってまじめなんですが。これ、実は過去にあったバグがいつ直ったかを探そうとしています。本来 git bisect正常に動いていたものがいつバグったかを探すものです。意味が逆になっているのですが、 git bisect を「要は二分探索するんだろー」と思っているとハマります。ハマりました。

workaround としては、 goodbad の意味を逆にすることです。つまり

1
2
3
git bisect start
git bisect good 12345678 # バグっているコミット
git bisect bad 98765432  # バグがいつの間にか直っていたコミット

として、 bisect 中もバグが再現したら git bisect good, 直ったら git bisect bad としましょう。

混乱しそう。

comments powered by Disqus
ページのトップへ戻る