>>> Then you must adjust your definition of "good": All commits that do not have >>> the feature, yet, are "good": since they do not have the feature in the >>> first place, they cannot have the breakage that you found in the feature. >>> >>> That is exactly the situation in your original example! But you constructed >>> the condition of goodness in such a simplistic way (depending on the >>> presence of a string), that it was impossible to distinguish between "does >>> not have the feature at all" and "has the feature, but it is broken". >> >> Johannes, thank you for correctly identifying the error in my logic. >> Indeed I was using the term 'bad' also for the commit without the >> feature. In order to find the commit introducing the bug in my example >> a new state is needed, which would make 'git bisect' a bit more >> complicated than the user 'most of the time' probably needs. Or do you >> think, it would make sense to ask the user for this state (if e.g 'git >> bisect' would be started with a new parameter)? > If a commit doesn't have the feature, then it is by definition, not > containing a broken feature, and you can simply use the "good" state. > There is no need for a different state. If you can't test the commit > because it's broken in some other way, you can use "git bisect skip" > but that isn't what you want in this case. Commits missing feature == 'good' commit is a very confusing one. Looks like in real life it happens much often, then git developers can imagine. For multi-branch/multi-feature workflow it's pretty easy not to recognize whether it is missing or not developed yet, especially on retrospective view where cherry-picking/squashing/merging is being used. My experience shows most annoying bugs are generating after a heavy merge (evil merge) with conflicts resolutions, where developer is not involved in the knowing what happens on counterpart changes. Then feature can be disappeared after it was worked & tested in its own branches. @Alex, I'm pretty interesting in fixing this weird bisect behaviour as well, as far as I struggled on it last summer and continue struggling so far :) If you want we can join to your efforts on fixing. Cheers, Oleg