diff options
author | Jeff King <peff@peff.net> | 2017-02-08 15:52:57 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-02-08 15:39:55 -0800 |
commit | 2429d63a46b141bb5006b8c1ea82e2d0163ab626 (patch) | |
tree | f5329a7ce5f3ed9671173f201e27b37c39575358 | |
parent | for_each_alternate_ref: use strbuf for path allocation (diff) | |
download | tgif-2429d63a46b141bb5006b8c1ea82e2d0163ab626.tar.xz |
for_each_alternate_ref: pass name/oid instead of ref struct
Breaking down the fields in the interface makes it easier to
change the backend of for_each_alternate_ref to something
that doesn't use "struct ref" internally.
The only field that callers actually look at is the oid,
anyway. The refname is kept in the interface as a plausible
thing for future code to want.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/receive-pack.c | 6 | ||||
-rw-r--r-- | fetch-pack.c | 12 | ||||
-rw-r--r-- | transport.c | 2 | ||||
-rw-r--r-- | transport.h | 2 |
4 files changed, 14 insertions, 8 deletions
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index 1dbb8a0692..d21332d9e7 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -277,10 +277,12 @@ static int show_one_alternate_sha1(const unsigned char sha1[20], void *unused) return 0; } -static void collect_one_alternate_ref(const struct ref *ref, void *data) +static void collect_one_alternate_ref(const char *refname, + const struct object_id *oid, + void *data) { struct sha1_array *sa = data; - sha1_array_append(sa, ref->old_oid.hash); + sha1_array_append(sa, oid->hash); } static void write_head_info(void) diff --git a/fetch-pack.c b/fetch-pack.c index 601f0779a1..54f84c5733 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -253,9 +253,11 @@ static void send_request(struct fetch_pack_args *args, write_or_die(fd, buf->buf, buf->len); } -static void insert_one_alternate_ref(const struct ref *ref, void *unused) +static void insert_one_alternate_ref(const char *refname, + const struct object_id *oid, + void *unused) { - rev_list_insert_ref(NULL, ref->old_oid.hash); + rev_list_insert_ref(NULL, oid->hash); } #define INITIAL_FLUSH 16 @@ -619,9 +621,11 @@ static void filter_refs(struct fetch_pack_args *args, *refs = newlist; } -static void mark_alternate_complete(const struct ref *ref, void *unused) +static void mark_alternate_complete(const char *refname, + const struct object_id *oid, + void *unused) { - mark_complete(ref->old_oid.hash); + mark_complete(oid->hash); } static int everything_local(struct fetch_pack_args *args, diff --git a/transport.c b/transport.c index 6b7847131f..c87147046f 100644 --- a/transport.c +++ b/transport.c @@ -1238,7 +1238,7 @@ static int refs_from_alternate_cb(struct alternate_object_database *e, for (extra = transport_get_remote_refs(transport); extra; extra = extra->next) - cb->fn(extra, cb->data); + cb->fn(extra->name, &extra->old_oid, cb->data); transport_disconnect(transport); out: strbuf_release(&path); diff --git a/transport.h b/transport.h index e597b31b38..bc5571574b 100644 --- a/transport.h +++ b/transport.h @@ -255,6 +255,6 @@ int transport_refs_pushed(struct ref *ref); void transport_print_push_status(const char *dest, struct ref *refs, int verbose, int porcelain, unsigned int *reject_reasons); -typedef void alternate_ref_fn(const struct ref *, void *); +typedef void alternate_ref_fn(const char *refname, const struct object_id *oid, void *); extern void for_each_alternate_ref(alternate_ref_fn, void *); #endif |