[PATCH v2 16/17] refs: replace `refs_for_each_namespaced_ref()`
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Feb 23, 2026, 11:59 UTC
- Message-ID
- <20260223-pks-refs-for-each-unification-v2-16-515d48c8087b@pks.im>
- In-Reply-To
- <20260223-pks-refs-for-each-unification-v2-0-515d48c8087b@pks.im>
Replace calls to `refs_for_each_namespaced_ref()` with the newly introduced `refs_for_each_ref_ext()` function.
Signed-off-by: Patrick Steinhardt <ps@pks.im> --- http-backend.c | 8 ++++++-- refs.c | 11 ----------- refs.h | 8 -------- upload-pack.c | 11 +++++++---- 4 files changed, 13 insertions(+), 25 deletions(-)
diff --git a/http-backend.c b/http-backend.c index 0122146df6..1a171c5c5a 100644 --- a/http-backend.c +++ b/http-backend.c @@ -565,9 +565,13 @@ static void get_info_refs(struct strbuf *hdr, char *arg UNUSED) run_service(argv, 0); } else { + struct refs_for_each_ref_options opts = { + .namespace = get_git_namespace(), + }; + select_getanyfile(hdr); - refs_for_each_namespaced_ref(get_main_ref_store(the_repository), - NULL, show_text_ref, &buf); + refs_for_each_ref_ext(get_main_ref_store(the_repository), + show_text_ref, &buf, &opts); send_strbuf(hdr, "text/plain", &buf); } strbuf_release(&buf); diff --git a/refs.c b/refs.c index ca7fc7289b..35a4925ac4 100644 --- a/refs.c +++ b/refs.c @@ -1951,17 +1951,6 @@ int refs_for_each_replace_ref(struct ref_store *refs, refs_for_each_cb cb, void return refs_for_each_ref_ext(refs, cb, cb_data, &opts); } -int refs_for_each_namespaced_ref(struct ref_store *refs, - const char **exclude_patterns, - refs_for_each_cb cb, void *cb_data) -{ - struct refs_for_each_ref_options opts = { - .exclude_patterns = exclude_patterns, - .namespace = get_git_namespace(), - }; - return refs_for_each_ref_ext(refs, cb, cb_data, &opts); -} - static int qsort_strcmp(const void *va, const void *vb) { const char *a = *(const char **)va; diff --git a/refs.h b/refs.h index b63775fa35..1b468c4ffb 100644 --- a/refs.h +++ b/refs.h @@ -527,14 +527,6 @@ int refs_for_each_ref_in_prefixes(struct ref_store *refs, const struct refs_for_each_ref_options *opts, refs_for_each_cb cb, void *cb_data); -/* - * references matching any pattern in "exclude_patterns" are omitted from the - * result set on a best-effort basis. - */ -int refs_for_each_namespaced_ref(struct ref_store *refs, - const char **exclude_patterns, - refs_for_each_cb fn, void *cb_data); - /* * Normalizes partial refs to their fully qualified form. * Will prepend <prefix> to the <pattern> if it doesn't start with 'refs/'. diff --git a/upload-pack.c b/upload-pack.c index 7fe397b0d0..d21f0577f9 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -610,7 +610,10 @@ static int allow_hidden_refs(enum allow_uor allow_uor) static void for_each_namespaced_ref_1(refs_for_each_cb fn, struct upload_pack_data *data) { - const char **excludes = NULL; + struct refs_for_each_ref_options opts = { + .namespace = get_git_namespace(), + }; + /* * If `data->allow_uor` allows fetching hidden refs, we need to * mark all references (including hidden ones), to check in @@ -621,10 +624,10 @@ static void for_each_namespaced_ref_1(refs_for_each_cb fn, * hidden references. */ if (allow_hidden_refs(data->allow_uor)) - excludes = hidden_refs_to_excludes(&data->hidden_refs); + opts.exclude_patterns = hidden_refs_to_excludes(&data->hidden_refs); - refs_for_each_namespaced_ref(get_main_ref_store(the_repository), - excludes, fn, data); + refs_for_each_ref_ext(get_main_ref_store(the_repository), + fn, data, &opts); }
-- 2.53.0.536.g309c995771.dirty