]> git.ipfire.org Git - thirdparty/git.git/blobdiff - builtin/for-each-ref.c
Merge branch 'tb/refs-exclusion-and-packed-refs'
[thirdparty/git.git] / builtin / for-each-ref.c
index 15409337f833e27d1bba47124b3dfec102fbb10b..350bfa6e811b8c53d94ba33083a03bf9d93437dc 100644 (file)
@@ -24,7 +24,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
        struct string_list sorting_options = STRING_LIST_INIT_DUP;
        int maxcount = 0, icase = 0, omit_empty = 0;
        struct ref_array array;
-       struct ref_filter filter;
+       struct ref_filter filter = REF_FILTER_INIT;
        struct ref_format format = REF_FORMAT_INIT;
        struct strbuf output = STRBUF_INIT;
        struct strbuf err = STRBUF_INIT;
@@ -47,6 +47,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
                OPT_INTEGER( 0 , "count", &maxcount, N_("show only <n> matched refs")),
                OPT_STRING(  0 , "format", &format.format, N_("format"), N_("format to use for the output")),
                OPT__COLOR(&format.use_color, N_("respect format colors")),
+               OPT_REF_FILTER_EXCLUDE(&filter),
                OPT_REF_SORT(&sorting_options),
                OPT_CALLBACK(0, "points-at", &filter.points_at,
                             N_("object"), N_("print only refs which points at the given object"),
@@ -61,7 +62,6 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
        };
 
        memset(&array, 0, sizeof(array));
-       memset(&filter, 0, sizeof(filter));
 
        format.format = "%(objectname) %(objecttype)\t%(refname)";
 
@@ -121,8 +121,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
        strbuf_release(&err);
        strbuf_release(&output);
        ref_array_clear(&array);
-       free_commit_list(filter.with_commit);
-       free_commit_list(filter.no_commit);
+       ref_filter_clear(&filter);
        ref_sorting_release(sorting);
        strvec_clear(&vec);
        return 0;