]> Kevux Git Server - rit/commit
bisect: fix misuse of `refs_for_each_ref_in()`
authorPatrick Steinhardt <ps@pks.im>
Thu, 19 Feb 2026 07:57:51 +0000 (08:57 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 19 Feb 2026 18:41:18 +0000 (10:41 -0800)
commit9e86e1a05b032d712658bbe70231447455f83fb6
tree2479334d8cb3e73e4e0184ea00b06f4da2a86cbe
parent7174098834e30d2da1834bbfd0aaf575f6d6bb1a
bisect: fix misuse of `refs_for_each_ref_in()`

All callers of `refs_for_each_ref_in()` pass in a string that is
terminated with a trailing slash to indicate that they only want to see
refs in that specific ref hierarchy. This is in fact a requirement if
one wants to use this function, as the function trims the prefix from
each yielded ref. So if there was a reference that was called
"refs/bisect" as in our example, the result after trimming would be the
empty string, and that's something we disallow.

Fix this by adding the trailing slash.

Furthermore, taking a closer look, we strip the prefix only to re-add it
in `mark_for_removal()`. This is somewhat roundabout, as we can instead
call `refs_for_each_fullref_in()` to not do any stripping at all. Do so
to simplify the code a bit.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
bisect.c