Move "get_ack()" back to fetch-pack
In41cb7488
Linus moved this function to connect.c for reuse inside of the git-clone-pack command. That was 2005, but in 2006 Junio retired git-clone-pack in commitefc7fa53
. Since then the only caller has been fetch-pack. Since this ACK/NAK exchange is only used by the fetch-pack/upload-pack protocol we should move it back to be a private detail of fetch-pack. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
edace6f02e
commit
28754ab5f0
@ -157,6 +157,27 @@ static const unsigned char *get_rev(void)
|
||||
return commit->object.sha1;
|
||||
}
|
||||
|
||||
static int get_ack(int fd, unsigned char *result_sha1)
|
||||
{
|
||||
static char line[1000];
|
||||
int len = packet_read_line(fd, line, sizeof(line));
|
||||
|
||||
if (!len)
|
||||
die("git fetch-pack: expected ACK/NAK, got EOF");
|
||||
if (line[len-1] == '\n')
|
||||
line[--len] = 0;
|
||||
if (!strcmp(line, "NAK"))
|
||||
return 0;
|
||||
if (!prefixcmp(line, "ACK ")) {
|
||||
if (!get_sha1_hex(line+4, result_sha1)) {
|
||||
if (strstr(line+45, "continue"))
|
||||
return 2;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
die("git fetch_pack: expected ACK/NAK, got '%s'", line);
|
||||
}
|
||||
|
||||
static int find_common(int fd[2], unsigned char *result_sha1,
|
||||
struct ref *refs)
|
||||
{
|
||||
|
Reference in New Issue
Block a user