Just reminding people that this issue would seem to still exist in current master.. It's trivial to show: [torvalds@i7 git]$ git bisect start [torvalds@i7 git]$ git bisect bad master [torvalds@i7 git]$ git bisect good master~5 Bisecting: 23 revisions left to test after this (roughly 5 steps) [f35a1d75b5ecefaef7b1a8ec55543c82883df82f] Merge branch 'rs/t3700-clean-leftover' into maint [torvalds@i7 git]$ git rev-parse --bisect fatal: BUG: attempt to trim too many characters (Note: I use "git rev-parse --bisect" to show it as an error on the command line, but normal people would obviously do "gitk --bisect" that then does that "git rev-parse" internally and shows a UI error box instead). Linus On Tue, Sep 5, 2017 at 3:03 PM, Jeff King <peff@xxxxxxxx> wrote: > On Tue, Sep 05, 2017 at 02:55:08PM -0700, Linus Torvalds wrote: > >> On Tue, Sep 5, 2017 at 2:50 PM, Jeff King <peff@xxxxxxxx> wrote: >> > >> > What version of git are you running? This should be fixed by 03df567fbf >> > (for_each_bisect_ref(): don't trim refnames, 2017-06-18) which is in >> > v2.14. >> >> I'm way more recent than 2.14. >> >> I'm at commit 238e487ea ("The fifth batch post 2.14") > > Ugh. Bitten again by the fact that rev-parse and revision.c implement > the same things in subtly different ways. > > This probably fixes it: > > diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c > index 2bd28d3c08..9f24004c0a 100644 > --- a/builtin/rev-parse.c > +++ b/builtin/rev-parse.c > @@ -757,8 +757,8 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) > continue; > } > if (!strcmp(arg, "--bisect")) { > - for_each_ref_in("refs/bisect/bad", show_reference, NULL); > - for_each_ref_in("refs/bisect/good", anti_reference, NULL); > + for_each_fullref_in("refs/bisect/bad", show_reference, NULL, 0); > + for_each_fullref_in("refs/bisect/good", anti_reference, NULL, 0); > continue; > } > if (opt_with_value(arg, "--branches", &arg)) {