refs.h: let `for_each_namespaced_ref()` take excluded patterns
A future commit will want to call `for_each_namespaced_ref()` with a list of excluded patterns. We could introduce a variant of that function, say, `for_each_namespaced_ref_exclude()` which takes the extra parameter, and reimplement the original function in terms of that. But all but one caller (in `http-backend.c`) will supply the new parameter, so add the new parameter to `for_each_namespaced_ref()` itself instead of introducing a new function. For now, supply NULL for the list of excluded patterns at all callers to avoid changing behavior, which we will do in a future change. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
c45841fff8
commit
e6bf24d39a
|
@ -559,7 +559,7 @@ static void get_info_refs(struct strbuf *hdr, char *arg UNUSED)
|
|||
|
||||
} else {
|
||||
select_getanyfile(hdr);
|
||||
for_each_namespaced_ref(show_text_ref, &buf);
|
||||
for_each_namespaced_ref(NULL, show_text_ref, &buf);
|
||||
send_strbuf(hdr, "text/plain", &buf);
|
||||
}
|
||||
strbuf_release(&buf);
|
||||
|
|
5
refs.c
5
refs.c
|
@ -1660,13 +1660,14 @@ int for_each_replace_ref(struct repository *r, each_repo_ref_fn fn, void *cb_dat
|
|||
DO_FOR_EACH_INCLUDE_BROKEN, cb_data);
|
||||
}
|
||||
|
||||
int for_each_namespaced_ref(each_ref_fn fn, void *cb_data)
|
||||
int for_each_namespaced_ref(const char **exclude_patterns,
|
||||
each_ref_fn fn, void *cb_data)
|
||||
{
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
int ret;
|
||||
strbuf_addf(&buf, "%srefs/", get_git_namespace());
|
||||
ret = do_for_each_ref(get_main_ref_store(the_repository),
|
||||
buf.buf, NULL, fn, 0, 0, cb_data);
|
||||
buf.buf, exclude_patterns, fn, 0, 0, cb_data);
|
||||
strbuf_release(&buf);
|
||||
return ret;
|
||||
}
|
||||
|
|
7
refs.h
7
refs.h
|
@ -376,7 +376,12 @@ int for_each_glob_ref_in(each_ref_fn fn, const char *pattern,
|
|||
const char *prefix, void *cb_data);
|
||||
|
||||
int head_ref_namespaced(each_ref_fn fn, void *cb_data);
|
||||
int for_each_namespaced_ref(each_ref_fn fn, void *cb_data);
|
||||
/*
|
||||
* references matching any pattern in "exclude_patterns" are omitted from the
|
||||
* result set on a best-effort basis.
|
||||
*/
|
||||
int for_each_namespaced_ref(const char **exclude_patterns,
|
||||
each_ref_fn fn, void *cb_data);
|
||||
|
||||
/* can be used to learn about broken ref and symref */
|
||||
int refs_for_each_rawref(struct ref_store *refs, each_ref_fn fn, void *cb_data);
|
||||
|
|
|
@ -855,7 +855,7 @@ static void deepen(struct upload_pack_data *data, int depth)
|
|||
* marked with OUR_REF.
|
||||
*/
|
||||
head_ref_namespaced(check_ref, data);
|
||||
for_each_namespaced_ref(check_ref, data);
|
||||
for_each_namespaced_ref(NULL, check_ref, data);
|
||||
|
||||
get_reachable_list(data, &reachable_shallows);
|
||||
result = get_shallow_commits(&reachable_shallows,
|
||||
|
@ -1386,7 +1386,7 @@ void upload_pack(const int advertise_refs, const int stateless_rpc,
|
|||
if (advertise_refs)
|
||||
data.no_done = 1;
|
||||
head_ref_namespaced(send_ref, &data);
|
||||
for_each_namespaced_ref(send_ref, &data);
|
||||
for_each_namespaced_ref(NULL, send_ref, &data);
|
||||
if (!data.sent_capabilities) {
|
||||
const char *refname = "capabilities^{}";
|
||||
write_v0_ref(&data, refname, refname, null_oid());
|
||||
|
@ -1400,7 +1400,7 @@ void upload_pack(const int advertise_refs, const int stateless_rpc,
|
|||
packet_flush(1);
|
||||
} else {
|
||||
head_ref_namespaced(check_ref, &data);
|
||||
for_each_namespaced_ref(check_ref, &data);
|
||||
for_each_namespaced_ref(NULL, check_ref, &data);
|
||||
}
|
||||
|
||||
if (!advertise_refs) {
|
||||
|
|
Loading…
Reference in New Issue