refs: remove the extra_refs API

The extra_refs provided a kludgy way to create fake references at a global level in the hope that they would only affect some particular code path. The last user of this API been rewritten, so strip this stuff out before somebody else gets the bad idea of using it. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Michael Haggerty committed Feb 11, 2012 at 07:21 UTC cf6672edb1eb90ef7f79d37eca08c93a662802a8
2 files changed +1 -30
refs.c
+1 -22
@@ -183,12 +183,6 @@ static struct ref_cache {
183
184 static struct ref_entry *current_ref;
185
186 -/*
187 - * Never call sort_ref_array() on the extra_refs, because it is
188 - * allowed to contain entries with duplicate names.
189 - */
190 -static struct ref_array extra_refs;
191 -
186 static void clear_ref_array(struct ref_array *array)
187 {
188 int i;
@@ -289,16 +283,6 @@ static void read_packed_refs(FILE *f, struct ref_array *array)
283 }
284 }
285
292 -void add_extra_ref(const char *refname, const unsigned char *sha1, int flag)
293 -{
294 - add_ref(&extra_refs, create_ref_entry(refname, sha1, flag, 0));
295 -}
296 -
297 -void clear_extra_refs(void)
298 -{
299 - clear_ref_array(&extra_refs);
300 -}
301 -
286 static struct ref_array *get_packed_refs(struct ref_cache *refs)
287 {
288 if (!refs->did_packed) {
@@ -733,16 +717,11 @@ fallback:
717 static int do_for_each_ref(const char *submodule, const char *base, each_ref_fn fn,
718 int trim, int flags, void *cb_data)
719 {
736 - int retval = 0, i, p = 0, l = 0;
720 + int retval = 0, p = 0, l = 0;
721 struct ref_cache *refs = get_ref_cache(submodule);
722 struct ref_array *packed = get_packed_refs(refs);
723 struct ref_array *loose = get_loose_refs(refs);
724
741 - struct ref_array *extra = &extra_refs;
742 -
743 - for (i = 0; i < extra->nr; i++)
744 - retval = do_one_ref(base, fn, trim, flags, cb_data, extra->refs[i]);
745 -
725 sort_ref_array(packed);
726 sort_ref_array(loose);
727 while (p < packed->nr && l < loose->nr) {
refs.h
-8
@@ -56,14 +56,6 @@ extern void warn_dangling_symref(FILE *fp, const char *msg_fmt, const char *refn
56 */
57 extern void add_packed_ref(const char *refname, const unsigned char *sha1);
58
59 -/*
60 - * Extra refs will be listed by for_each_ref() before any actual refs
61 - * for the duration of this process or until clear_extra_refs() is
62 - * called. Only extra refs added before for_each_ref() is called will
63 - * be listed on a given call of for_each_ref().
64 - */
65 -extern void add_extra_ref(const char *refname, const unsigned char *sha1, int flags);
66 -extern void clear_extra_refs(void);
59 extern int ref_exists(const char *);
60
61 extern int peel_ref(const char *refname, unsigned char *sha1);