]> git.ipfire.org Git - thirdparty/git.git/commitdiff
refs: drop "broken" flag from for_each_fullref_in()
authorJeff King <peff@peff.net>
Fri, 24 Sep 2021 18:48:48 +0000 (14:48 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 27 Sep 2021 19:36:45 +0000 (12:36 -0700)
No callers pass in anything but "0" here. Likewise to our sibling
functions. Note that some of them ferry along the flag, but none of
their callers pass anything but "0" either.

Nor is anybody likely to change that. Callers which really want to see
all of the raw refs use for_each_rawref(). And anybody interested in
iterating a subset of the refs will likely be happy to use the
now-default behavior of showing broken refs, but omitting dangling
symlinks.

So we can get rid of this whole feature.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/rev-parse.c
ls-refs.c
ref-filter.c
refs.c
refs.h
revision.c

index 22c4e1a4ff0f2164f477d02ad230a08ce2a978c8..8480a59f573e28d7777ee7e0dd21a2a640657641 100644 (file)
@@ -863,8 +863,8 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
                                continue;
                        }
                        if (!strcmp(arg, "--bisect")) {
-                               for_each_fullref_in("refs/bisect/bad", show_reference, NULL, 0);
-                               for_each_fullref_in("refs/bisect/good", anti_reference, NULL, 0);
+                               for_each_fullref_in("refs/bisect/bad", show_reference, NULL);
+                               for_each_fullref_in("refs/bisect/good", anti_reference, NULL);
                                continue;
                        }
                        if (opt_with_value(arg, "--branches", &arg)) {
index be0956891088b6a7181dd43c022b9ecca65c7cd8..7fe9675d3c686d607583269ea09d6f98f8678a20 100644 (file)
--- a/ls-refs.c
+++ b/ls-refs.c
@@ -171,7 +171,7 @@ int ls_refs(struct repository *r, struct packet_reader *request)
        if (!data.prefixes.nr)
                strvec_push(&data.prefixes, "");
        for_each_fullref_in_prefixes(get_git_namespace(), data.prefixes.v,
-                                    send_ref, &data, 0);
+                                    send_ref, &data);
        packet_fflush(stdout);
        strvec_clear(&data.prefixes);
        strbuf_release(&data.buf);
index e59bb4cf9ce23da3851f1772a5799cb7a9b109f3..e15f0c4baceb38ae158155d22404a0698c2a12b9 100644 (file)
@@ -2100,8 +2100,7 @@ static int filter_pattern_match(struct ref_filter *filter, const char *refname)
  */
 static int for_each_fullref_in_pattern(struct ref_filter *filter,
                                       each_ref_fn cb,
-                                      void *cb_data,
-                                      int broken)
+                                      void *cb_data)
 {
        if (!filter->match_as_path) {
                /*
@@ -2109,7 +2108,7 @@ static int for_each_fullref_in_pattern(struct ref_filter *filter,
                 * prefixes like "refs/heads/" etc. are stripped off,
                 * so we have to look at everything:
                 */
-               return for_each_fullref_in("", cb, cb_data, broken);
+               return for_each_fullref_in("", cb, cb_data);
        }
 
        if (filter->ignore_case) {
@@ -2118,16 +2117,16 @@ static int for_each_fullref_in_pattern(struct ref_filter *filter,
                 * so just return everything and let the caller
                 * sort it out.
                 */
-               return for_each_fullref_in("", cb, cb_data, broken);
+               return for_each_fullref_in("", cb, cb_data);
        }
 
        if (!filter->name_patterns[0]) {
                /* no patterns; we have to look at everything */
-               return for_each_fullref_in("", cb, cb_data, broken);
+               return for_each_fullref_in("", cb, cb_data);
        }
 
        return for_each_fullref_in_prefixes(NULL, filter->name_patterns,
-                                           cb, cb_data, broken);
+                                           cb, cb_data);
 }
 
 /*
@@ -2425,13 +2424,13 @@ int filter_refs(struct ref_array *array, struct ref_filter *filter, unsigned int
                 * of filter_ref_kind().
                 */
                if (filter->kind == FILTER_REFS_BRANCHES)
-                       ret = for_each_fullref_in("refs/heads/", ref_filter_handler, &ref_cbdata, 0);
+                       ret = for_each_fullref_in("refs/heads/", ref_filter_handler, &ref_cbdata);
                else if (filter->kind == FILTER_REFS_REMOTES)
-                       ret = for_each_fullref_in("refs/remotes/", ref_filter_handler, &ref_cbdata, 0);
+                       ret = for_each_fullref_in("refs/remotes/", ref_filter_handler, &ref_cbdata);
                else if (filter->kind == FILTER_REFS_TAGS)
-                       ret = for_each_fullref_in("refs/tags/", ref_filter_handler, &ref_cbdata, 0);
+                       ret = for_each_fullref_in("refs/tags/", ref_filter_handler, &ref_cbdata);
                else if (filter->kind & FILTER_REFS_ALL)
-                       ret = for_each_fullref_in_pattern(filter, ref_filter_handler, &ref_cbdata, 0);
+                       ret = for_each_fullref_in_pattern(filter, ref_filter_handler, &ref_cbdata);
                if (!ret && (filter->kind & FILTER_REFS_DETACHED_HEAD))
                        head_ref(ref_filter_handler, &ref_cbdata);
        }
diff --git a/refs.c b/refs.c
index d0f4e8726badec8e39480cc01d5ed751ca20f5f9..2be0d0f0576368be8b2331ce72ab4bd756eba690 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -1522,25 +1522,16 @@ int for_each_ref_in(const char *prefix, each_ref_fn fn, void *cb_data)
        return refs_for_each_ref_in(get_main_ref_store(the_repository), prefix, fn, cb_data);
 }
 
-int for_each_fullref_in(const char *prefix, each_ref_fn fn, void *cb_data, unsigned int broken)
+int for_each_fullref_in(const char *prefix, each_ref_fn fn, void *cb_data)
 {
-       enum do_for_each_ref_flags flag = 0;
-
-       if (broken)
-               flag = DO_FOR_EACH_INCLUDE_BROKEN;
        return do_for_each_ref(get_main_ref_store(the_repository),
-                              prefix, fn, 0, flag, cb_data);
+                              prefix, fn, 0, 0, cb_data);
 }
 
 int refs_for_each_fullref_in(struct ref_store *refs, const char *prefix,
-                            each_ref_fn fn, void *cb_data,
-                            unsigned int broken)
+                            each_ref_fn fn, void *cb_data)
 {
-       enum do_for_each_ref_flags flag = 0;
-
-       if (broken)
-               flag = DO_FOR_EACH_INCLUDE_BROKEN;
-       return do_for_each_ref(refs, prefix, fn, 0, flag, cb_data);
+       return do_for_each_ref(refs, prefix, fn, 0, 0, cb_data);
 }
 
 int for_each_replace_ref(struct repository *r, each_repo_ref_fn fn, void *cb_data)
@@ -1632,8 +1623,7 @@ static void find_longest_prefixes(struct string_list *out,
 
 int for_each_fullref_in_prefixes(const char *namespace,
                                 const char **patterns,
-                                each_ref_fn fn, void *cb_data,
-                                unsigned int broken)
+                                each_ref_fn fn, void *cb_data)
 {
        struct string_list prefixes = STRING_LIST_INIT_DUP;
        struct string_list_item *prefix;
@@ -1648,7 +1638,7 @@ int for_each_fullref_in_prefixes(const char *namespace,
 
        for_each_string_list_item(prefix, &prefixes) {
                strbuf_addstr(&buf, prefix->string);
-               ret = for_each_fullref_in(buf.buf, fn, cb_data, broken);
+               ret = for_each_fullref_in(buf.buf, fn, cb_data);
                if (ret)
                        break;
                strbuf_setlen(&buf, namespace_len);
diff --git a/refs.h b/refs.h
index 48970dfc7e0f0d6263a3faca9d92aa887a60d0e4..10e7696a647f487358ef32eb2feb8d263e4060ce 100644 (file)
--- a/refs.h
+++ b/refs.h
@@ -342,10 +342,8 @@ int for_each_ref(each_ref_fn fn, void *cb_data);
 int for_each_ref_in(const char *prefix, each_ref_fn fn, void *cb_data);
 
 int refs_for_each_fullref_in(struct ref_store *refs, const char *prefix,
-                            each_ref_fn fn, void *cb_data,
-                            unsigned int broken);
-int for_each_fullref_in(const char *prefix, each_ref_fn fn, void *cb_data,
-                       unsigned int broken);
+                            each_ref_fn fn, void *cb_data);
+int for_each_fullref_in(const char *prefix, each_ref_fn fn, void *cb_data);
 
 /**
  * iterate all refs in "patterns" by partitioning patterns into disjoint sets
@@ -354,8 +352,7 @@ int for_each_fullref_in(const char *prefix, each_ref_fn fn, void *cb_data,
  * callers should be prepared to ignore references that they did not ask for.
  */
 int for_each_fullref_in_prefixes(const char *namespace, const char **patterns,
-                                each_ref_fn fn, void *cb_data,
-                                unsigned int broken);
+                                each_ref_fn fn, void *cb_data);
 /**
  * iterate refs from the respective area.
  */
index 0dabb5a0bcfe929124677a34d0fd94831d346c57..b7a2baad0e98f5f65d29a0089f7ff71bfadfee83 100644 (file)
@@ -2548,7 +2548,7 @@ static int for_each_bisect_ref(struct ref_store *refs, each_ref_fn fn,
        struct strbuf bisect_refs = STRBUF_INIT;
        int status;
        strbuf_addf(&bisect_refs, "refs/bisect/%s", term);
-       status = refs_for_each_fullref_in(refs, bisect_refs.buf, fn, cb_data, 0);
+       status = refs_for_each_fullref_in(refs, bisect_refs.buf, fn, cb_data);
        strbuf_release(&bisect_refs);
        return status;
 }