From: Stefan Xenos <sxe...@google.com>

The metas namespace will contain refs for changes in progress. Add
support for searching this namespace.

Signed-off-by: Stefan Xenos <sxe...@google.com>
---
 ref-filter.c | 8 ++++++--
 ref-filter.h | 5 +++--
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/ref-filter.c b/ref-filter.c
index 422a9c9ae3..4d7bd06880 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -1925,7 +1925,8 @@ static int ref_kind_from_refname(const char *refname)
        } ref_kind[] = {
                { "refs/heads/" , FILTER_REFS_BRANCHES },
                { "refs/remotes/" , FILTER_REFS_REMOTES },
-               { "refs/tags/", FILTER_REFS_TAGS}
+               { "refs/tags/", FILTER_REFS_TAGS },
+               { "refs/metas/", FILTER_REFS_CHANGES }
        };
 
        if (!strcmp(refname, "HEAD"))
@@ -1943,7 +1944,8 @@ static int filter_ref_kind(struct ref_filter *filter, 
const char *refname)
 {
        if (filter->kind == FILTER_REFS_BRANCHES ||
            filter->kind == FILTER_REFS_REMOTES ||
-           filter->kind == FILTER_REFS_TAGS)
+           filter->kind == FILTER_REFS_TAGS ||
+           filter->kind == FILTER_REFS_CHANGES )
                return filter->kind;
        return ref_kind_from_refname(refname);
 }
@@ -2128,6 +2130,8 @@ int filter_refs(struct ref_array *array, struct 
ref_filter *filter, unsigned int
                        ret = for_each_fullref_in("refs/remotes/", 
ref_filter_handler, &ref_cbdata, broken);
                else if (filter->kind == FILTER_REFS_TAGS)
                        ret = for_each_fullref_in("refs/tags/", 
ref_filter_handler, &ref_cbdata, broken);
+               else if (filter->kind == FILTER_REFS_CHANGES)
+                       ret = for_each_fullref_in("refs/metas/", 
ref_filter_handler, &ref_cbdata, broken);
                else if (filter->kind & FILTER_REFS_ALL)
                        ret = for_each_fullref_in_pattern(filter, 
ref_filter_handler, &ref_cbdata, broken);
                if (!ret && (filter->kind & FILTER_REFS_DETACHED_HEAD))
diff --git a/ref-filter.h b/ref-filter.h
index 85c8ebc3b9..19a3e57845 100644
--- a/ref-filter.h
+++ b/ref-filter.h
@@ -18,9 +18,10 @@
 #define FILTER_REFS_BRANCHES       0x0004
 #define FILTER_REFS_REMOTES        0x0008
 #define FILTER_REFS_OTHERS         0x0010
-#define FILTER_REFS_ALL            (FILTER_REFS_TAGS | FILTER_REFS_BRANCHES | \
-                                   FILTER_REFS_REMOTES | FILTER_REFS_OTHERS)
 #define FILTER_REFS_DETACHED_HEAD  0x0020
+#define FILTER_REFS_CHANGES        0X0040
+#define FILTER_REFS_ALL            (FILTER_REFS_TAGS | FILTER_REFS_BRANCHES | \
+                                   FILTER_REFS_REMOTES | FILTER_REFS_CHANGES | 
FILTER_REFS_OTHERS)
 #define FILTER_REFS_KIND_MASK      (FILTER_REFS_ALL | 
FILTER_REFS_DETACHED_HEAD)
 
 struct atom_value;
-- 
2.20.1.495.gaa96b0ce6b-goog

Reply via email to