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);