diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-03-22 21:37:53 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-03-22 21:37:53 -0700 |
commit | 91b3c7ce8e189b90d3203265c9625806a15045e1 (patch) | |
tree | 2287f84dbd07706e74db16896e8e7f3a7d6dd7ed /builtin/fetch-pack.c | |
parent | Merge branch 'sg/complete-symmetric-diff' (diff) | |
parent | fetch-pack: objects in our alternates are available to us (diff) | |
download | tgif-91b3c7ce8e189b90d3203265c9625806a15045e1.tar.xz |
Merge branch 'jc/maint-fetch-alt'
* jc/maint-fetch-alt:
fetch-pack: objects in our alternates are available to us
refs_from_alternate: helper to use refs from alternates
Conflicts:
builtin/receive-pack.c
Diffstat (limited to 'builtin/fetch-pack.c')
-rw-r--r-- | builtin/fetch-pack.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c index ef398620af..28d6900bb0 100644 --- a/builtin/fetch-pack.c +++ b/builtin/fetch-pack.c @@ -9,6 +9,7 @@ #include "fetch-pack.h" #include "remote.h" #include "run-command.h" +#include "transport.h" static int transfer_unpack_limit = -1; static int fetch_unpack_limit = -1; @@ -217,6 +218,16 @@ static void send_request(int fd, struct strbuf *buf) safe_write(fd, buf->buf, buf->len); } +static void insert_one_alternate_ref(const struct ref *ref, void *unused) +{ + rev_list_insert_ref(NULL, ref->old_sha1, 0, NULL); +} + +static void insert_alternate_refs(void) +{ + foreach_alt_odb(refs_from_alternate_cb, insert_one_alternate_ref); +} + static int find_common(int fd[2], unsigned char *result_sha1, struct ref *refs) { @@ -235,6 +246,7 @@ static int find_common(int fd[2], unsigned char *result_sha1, marked = 1; for_each_ref(rev_list_insert_ref, NULL); + insert_alternate_refs(); fetching = 0; for ( ; refs ; refs = refs->next) { |