diff options
author | Stefan Beller <sbeller@google.com> | 2018-04-12 03:21:10 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-04-12 05:38:56 +0300 |
commit | 60ce76d35819a9679104b6615aa0466ae49023a0 (patch) | |
tree | ed7f7da5ccb195dfd05989c82ac01efa4e85a7ec | |
parent | 23a3f0cb16caa1cc79cf0af42a92bff61fe955a4 (diff) |
refs: add repository argument to for_each_replace_ref
Add a repository argument to allow for_each_replace_ref callers to be
more specific about which repository to handle. This is a small
mechanical change; it doesn't change the implementation to handle
repositories other than the_repository yet.
As with the previous commits, use a macro to catch callers passing a
repository other than the_repository at compile time.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/replace.c | 4 | ||||
-rw-r--r-- | refs.c | 2 | ||||
-rw-r--r-- | refs.h | 4 | ||||
-rw-r--r-- | replace_object.c | 2 |
4 files changed, 8 insertions, 4 deletions
diff --git a/builtin/replace.c b/builtin/replace.c index 935647be6b..237ea656cf 100644 --- a/builtin/replace.c +++ b/builtin/replace.c @@ -14,6 +14,8 @@ #include "refs.h" #include "parse-options.h" #include "run-command.h" +#include "object-store.h" +#include "repository.h" #include "tag.h" static const char * const git_replace_usage[] = { @@ -83,7 +85,7 @@ static int list_replace_refs(const char *pattern, const char *format) "valid formats are 'short', 'medium' and 'long'\n", format); - for_each_replace_ref(show_reference, (void *)&data); + for_each_replace_ref(the_repository, show_reference, (void *)&data); return 0; } @@ -1415,7 +1415,7 @@ int refs_for_each_fullref_in(struct ref_store *refs, const char *prefix, return do_for_each_ref(refs, prefix, fn, 0, flag, cb_data); } -int for_each_replace_ref(each_ref_fn fn, void *cb_data) +int for_each_replace_ref_the_repository(each_ref_fn fn, void *cb_data) { return do_for_each_ref(get_main_ref_store(the_repository), git_replace_ref_base, fn, @@ -300,7 +300,9 @@ int for_each_fullref_in(const char *prefix, each_ref_fn fn, void *cb_data, int for_each_tag_ref(each_ref_fn fn, void *cb_data); int for_each_branch_ref(each_ref_fn fn, void *cb_data); int for_each_remote_ref(each_ref_fn fn, void *cb_data); -int for_each_replace_ref(each_ref_fn fn, void *cb_data); +#define for_each_replace_ref(r, fn, cb) \ + for_each_replace_ref_##r(fn, cb) +int for_each_replace_ref_the_repository(each_ref_fn fn, void *cb_data); int for_each_glob_ref(each_ref_fn fn, const char *pattern, void *cb_data); int for_each_glob_ref_in(each_ref_fn fn, const char *pattern, const char *prefix, void *cb_data); diff --git a/replace_object.c b/replace_object.c index b2405f6027..16a95ea416 100644 --- a/replace_object.c +++ b/replace_object.c @@ -40,7 +40,7 @@ static void prepare_replace_object(void) xmalloc(sizeof(*the_repository->objects->replace_map)); oidmap_init(the_repository->objects->replace_map, 0); - for_each_replace_ref(register_replace_ref, NULL); + for_each_replace_ref(the_repository, register_replace_ref, NULL); } /* We allow "recursive" replacement. Only within reason, though */ |