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
This commit is contained in:
Junio C Hamano
2011-03-22 21:37:53 -07:00
5 changed files with 118 additions and 32 deletions

View File

@ -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) {