for_each_bisect_ref(): don't trim refnames
commit03df567fbf6afeca32f6a27d04656c1a3a162453
authorMichael Haggerty <mhagger@alum.mit.edu>
Sun, 18 Jun 2017 13:39:41 +0000 (18 15:39 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 19 Jun 2017 05:13:42 +0000 (18 22:13 -0700)
treeec403b5a55fb091c668b88da9c13ae492331381c
parentfed6ebebf132eb32478a5cbbebba3760c943970a
for_each_bisect_ref(): don't trim refnames

`for_each_bisect_ref()` is called by `for_each_bad_bisect_ref()` with
a term "bad". This used to make it call `for_each_ref_in_submodule()`
with a prefix "refs/bisect/bad". But the latter is the name of the
reference that is being sought, so the empty string was being passed
to the callback as the trimmed refname. Moreover, this questionable
practice was turned into an error by

    b9c8e7f2fb prefix_ref_iterator: don't trim too much, 2017-05-22

It makes more sense (and agrees better with the documentation of
`--bisect`) for the callers to receive the full reference names. So

* Add a new function, `for_each_fullref_in_submodule()`, to the refs
  API. This plugs a gap in the existing functionality, analogous to
  `for_each_fullref_in()` but accepting a `submodule` argument.

* Change `for_each_bad_bisect_ref()` to call the new function rather
  than `for_each_ref_in_submodule()`.

* Add a test.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c
refs.h
revision.c
t/t6002-rev-list-bisect.sh