Skip to content

Commit

Permalink
refs: remove the extra_refs API
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Michael Haggerty authored and Junio C Hamano committed Feb 13, 2012
1 parent a1287f7 commit cf6672e
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 30 deletions.
23 changes: 1 addition & 22 deletions refs.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,12 +183,6 @@ static struct ref_cache {

static struct ref_entry *current_ref;

/*
* Never call sort_ref_array() on the extra_refs, because it is
* allowed to contain entries with duplicate names.
*/
static struct ref_array extra_refs;

static void clear_ref_array(struct ref_array *array)
{
int i;
Expand Down Expand Up @@ -289,16 +283,6 @@ static void read_packed_refs(FILE *f, struct ref_array *array)
}
}

void add_extra_ref(const char *refname, const unsigned char *sha1, int flag)
{
add_ref(&extra_refs, create_ref_entry(refname, sha1, flag, 0));
}

void clear_extra_refs(void)
{
clear_ref_array(&extra_refs);
}

static struct ref_array *get_packed_refs(struct ref_cache *refs)
{
if (!refs->did_packed) {
Expand Down Expand Up @@ -733,16 +717,11 @@ int peel_ref(const char *refname, unsigned char *sha1)
static int do_for_each_ref(const char *submodule, const char *base, each_ref_fn fn,
int trim, int flags, void *cb_data)
{
int retval = 0, i, p = 0, l = 0;
int retval = 0, p = 0, l = 0;
struct ref_cache *refs = get_ref_cache(submodule);
struct ref_array *packed = get_packed_refs(refs);
struct ref_array *loose = get_loose_refs(refs);

struct ref_array *extra = &extra_refs;

for (i = 0; i < extra->nr; i++)
retval = do_one_ref(base, fn, trim, flags, cb_data, extra->refs[i]);

sort_ref_array(packed);
sort_ref_array(loose);
while (p < packed->nr && l < loose->nr) {
Expand Down
8 changes: 0 additions & 8 deletions refs.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,6 @@ extern void warn_dangling_symref(FILE *fp, const char *msg_fmt, const char *refn
*/
extern void add_packed_ref(const char *refname, const unsigned char *sha1);

/*
* Extra refs will be listed by for_each_ref() before any actual refs
* for the duration of this process or until clear_extra_refs() is
* called. Only extra refs added before for_each_ref() is called will
* be listed on a given call of for_each_ref().
*/
extern void add_extra_ref(const char *refname, const unsigned char *sha1, int flags);
extern void clear_extra_refs(void);
extern int ref_exists(const char *);

extern int peel_ref(const char *refname, unsigned char *sha1);
Expand Down

0 comments on commit cf6672e

Please sign in to comment.