Browse Source

fetch-pack: progressively use larger handshake windows

The client has to dig the history deeper when more recent parts of its
history do not have any overlap with the server it is fetching from. Make
the handshake window exponentially larger as we dig deeper, with a
reasonable upper cap.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Shawn Pearce <spearce@spearce.org>
maint
Junio C Hamano 14 years ago
parent
commit
6afca450c3
  1. 7
      builtin/fetch-pack.c

7
builtin/fetch-pack.c

@ -219,10 +219,15 @@ static void send_request(int fd, struct strbuf *buf) @@ -219,10 +219,15 @@ static void send_request(int fd, struct strbuf *buf)
}

#define INITIAL_FLUSH 32
#define LARGE_FLUSH 1024

static int next_flush(int count)
{
return INITIAL_FLUSH + count;
if (count < LARGE_FLUSH)
count <<= 1;
else
count += LARGE_FLUSH;
return count;
}

static int find_common(int fd[2], unsigned char *result_sha1,

Loading…
Cancel
Save