On Sun, Feb 19, 2017 at 11:05 AM, Alex Hoffman <spec@xxxxxx> wrote: >> 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. Thanks, Jake