git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Git bisect skip

From
MGMichael 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

Next: Christian Couder
Message 1 of 5 in “Git bisect skip”
  1. Michael GofronJun 21, 2024
  2. Christian CouderJun 21, 2024
  3. Michael GofronJun 21, 2024
  4. Michael GofronJun 25, 2024
  5. Michael GofronJun 25, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.