On Thu, Apr 29, 2021 at 9:25 AM Bagas Sanjaya <bagasdotme@xxxxxxxxx> wrote: > > Trygve Aaberge reported git bisect breakage when the bisection > is started with --term* arguments (--term-new and --term-old). Sorry if my previous comment was not clear about it, but I think it's enough to mention Trygve in a "Reported-by:" trailer below. One thing that might be interesting to tell is that the breakage was introduced by the following commit: e4c7b33747 (bisect--helper: reimplement `bisect_skip` shell function in C, 2021-02-03) So maybe: "Since e4c7b33747 (bisect--helper: reimplement `bisect_skip` shell function in C, 2021-02-03), `git bisect skip` has been broken when the bisection is started with --term* arguments (--term-new and --term-old)." > For example, suppose that we have repository with 10 commits, and we > start the bisection from HEAD to first commit (HEAD~9) with: > > $ git bisect start --term-new=fixed --term-old=unfixed HEAD HEAD~9 > > The bisection then stopped at HEAD~5 (fifth commit), and we choose > to skip (git bisect skip). The HEAD should now at HEAD~4 (sixth commit). > In the breakage, however, the HEAD after skipping stayed at HEAD~5 > (not changed). The breakage is caused by forgetting to read '.git/BISECT_TERMS' during implementation of `'bisect skip' subcommand in C. > > The fix is in commit 002241336f (bisect--helper: use BISECT_TERMS in > 'bisect skip' command, 2021-04-25). To verify it fixes the breakage, add > the test. I am not sure how safe it is to use the hash of a commit that is in seen but not yet in next. I suggested using "a previous commit" instead as I thought that both the fix and this commit should be part of the same branch, and then it would be obvious which commit it is. Maybe we should wait for Junio to come back from vacation and decide about this. > Reported-by: Trygve Aaberge <trygveaa@xxxxxxxxx> > Signed-off-by: Bagas Sanjaya <bagasdotme@xxxxxxxxx> Thanks!