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

Re: [BUG REPORT] Git does not correctly replay bisect log

From
Christian Couder <christian.couder@gmail.com>
Date
Dec 6, 2018, 23:02 UTC
Message-ID
<CAP8UFD2+Kk84J=xwGo2bRGUeOXaRCKbLhZSS769qvDMFN8Pg3g@mail.gmail.com>
In-Reply-To
<5ab4e3fb2e22097753bde7702e67d6ce924283a2.camel@gmail.com>
On Thu, Dec 6, 2018 at 6:30 PM Lukáš Krejčí <lskrejci@gmail.com> wrote:
Show 5 quoted lines
>
> I am talking about `git bisect replay`. The shell script, as far as I
> can see, only updates the references (ref/bisect/*) and never checks if
> the revisions marked as 'good' are ancestors of the 'bad' one.
> Therefore, $GIT_DIR/BISECT_ANCESTORS_OK file is never created.

Indeed `git bisect replay` first only updates the references (ref/bisect/*) according to all the "git bisect {good,bad}" instructions it finds in the log it is passed. After doing that though, before exiting, it calls `bisect_auto_next` which calls `bisect_next` which calls `git bisect--helper --next-all` which checks the merge bases.

I think it is a bug.

`git bisect replay` is right to only update the references (ref/bisect/*) and not to compute and checkout the best commit to test at each step except at the end, but it should probably just create the $GIT_DIR/BISECT_ANCESTORS_OK file if more than one bisection step has been performed (because the merge bases are checked as part of the first bisection step only).

> The first time the ancestors are checked is in the helper (`git-bisect-
> -help --next-all`) that has only limited information from refs/bisect*.

`git-bisect--helper --next-all` knows how to get refs/bisect* information, otherwise it couldn't decide which is the next best commit to test.

Thanks for your help in debugging this, Christian.

Previous: Lukáš KrejčíNext: Lukáš Krejčí
Message 9 of 10 in “[BUG REPORT] Git does not correctly replay bisect log”
  1. Lukáš KrejčíDec 4, 2018
  2. Christian CouderDec 4, 2018
  3. Lukáš KrejčíDec 4, 2018
  4. Christian CouderDec 4, 2018
  5. Lukáš KrejčíDec 4, 2018
  6. Lukáš KrejčíDec 6, 2018
  7. Christian CouderDec 6, 2018
  8. Lukáš KrejčíDec 6, 2018
  9. Christian CouderDec 6, 2018
  10. Lukáš KrejčíDec 4, 2018

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.