Git bisect skip
- From
- Michael Gofron <gofronm@yahoo.com>
- Date
- Jun 21, 2024, 03:51 UTC
- Message-ID
- <968676664.8436621.1718941871973@mail.yahoo.com>
- In-Reply-To
- <968676664.8436621.1718941871973.ref@mail.yahoo.com>
Hello,
My question is can using `git bisect skip` cause a bisect to be indeterminate and/or fail if the commits that are skipped couldn't have caused the issue?
Consider if my commits are like this:
1P - 2P - 3B - 4P - 5P - 6B - 7B - 8F - 9F. P for "Pass", B for "Broken", and F for "Fail". Broken commits are commits that we can't create a build for but wouldn't cause the issue. Failing commits are failing because of a bug.
In this case, 8F caused the bug. If you tell git bisect that 1P is good and 9F is bad, bisect picks a commit between the known newest Good commit (1P) and the known oldest Bad commit (9F).
1P -- 2P - 3B - 4P - 5P - 6B - 7B - 8F - 9F G B <------------------------------> Perhaps 4P. That builds and passes, so it marks that as Good.
If it then goes to 6B which is a Broken commit and we do `git bisect skip` what happens next? It seems from the code it uses a psuedo random number generator with bias to determine the next commit. Would it ever get in a state where it can't determine the commit that caused the issue even if these broken commits would never cause an issue?
-Thank you Michael Gofron