diff options
author | David Turner <dturner@twopensource.com> | 2016-02-24 17:58:39 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-02-25 16:01:01 -0800 |
commit | 6b86400fca8ba4fd6c090b926f32424cc0f795f3 (patch) | |
tree | 2563997fa1336f25f21297109b423ccde12f2ca9 | |
parent | 9d40ba5185b547f5e44bf181e731d0ba0c454458 (diff) | |
download | git-6b86400fca8ba4fd6c090b926f32424cc0f795f3.tar.gz |
refs: add method for do_for_each_ref
Add a ref backend method for do_for_each_ref.
Signed-off-by: David Turner <dturner@twopensource.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | refs.c | 8 | ||||
-rw-r--r-- | refs/files-backend.c | 7 | ||||
-rw-r--r-- | refs/refs-internal.h | 5 |
3 files changed, 18 insertions, 2 deletions
@@ -1339,3 +1339,11 @@ int resolve_gitlink_ref(const char *path, const char *refname, { return the_refs_backend->resolve_gitlink_ref(path, refname, sha1); } + +int do_for_each_ref(const char *submodule, const char *base, + each_ref_fn fn, int trim, int flags, + void *cb_data) +{ + return the_refs_backend->do_for_each_ref(submodule, base, fn, trim, + flags, cb_data); +} diff --git a/refs/files-backend.c b/refs/files-backend.c index 68eb3b390b..242eee0a87 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -1679,8 +1679,9 @@ static int do_for_each_entry(struct ref_cache *refs, const char *base, * value, stop the iteration and return that value; otherwise, return * 0. */ -int do_for_each_ref(const char *submodule, const char *base, - each_ref_fn fn, int trim, int flags, void *cb_data) +static int files_do_for_each_ref(const char *submodule, const char *base, + each_ref_fn fn, int trim, int flags, + void *cb_data) { struct ref_entry_cb data; struct ref_cache *refs; @@ -3415,4 +3416,6 @@ struct ref_storage_be refs_be_files = { files_read_raw_ref, files_verify_refname_available, files_resolve_gitlink_ref, + + files_do_for_each_ref, }; diff --git a/refs/refs-internal.h b/refs/refs-internal.h index c5f5ef7671..c9b6745035 100644 --- a/refs/refs-internal.h +++ b/refs/refs-internal.h @@ -227,6 +227,9 @@ typedef int read_raw_ref_fn(const char *refname, unsigned char *sha1, typedef int verify_refname_available_fn(const char *refname, struct string_list *extra, struct string_list *skip, struct strbuf *err); typedef int resolve_gitlink_ref_fn(const char *path, const char *refname, unsigned char *sha1); +typedef int do_for_each_ref_fn(const char *submodule, const char *base, + each_ref_fn fn, int trim, int flags, + void *cb_data); struct ref_storage_be { struct ref_storage_be *next; @@ -240,6 +243,8 @@ struct ref_storage_be { read_raw_ref_fn *read_raw_ref; verify_refname_available_fn *verify_refname_available; resolve_gitlink_ref_fn *resolve_gitlink_ref; + + do_for_each_ref_fn *do_for_each_ref; }; extern struct ref_storage_be refs_be_files; |