Browse Source

send-pack: extract parsing of "unpack" response

After sending the pack, we call receive_status() which gets
both the "unpack" line and the ref status. Let's break these
into two functions so we can call the first part
independently.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 8 years ago committed by Junio C Hamano
parent
commit
7c39df2979
  1. 23
      send-pack.c

23
send-pack.c

@ -130,22 +130,27 @@ static int pack_objects(int fd, struct ref *refs, struct sha1_array *extra, stru @@ -130,22 +130,27 @@ static int pack_objects(int fd, struct ref *refs, struct sha1_array *extra, stru
return 0;
}

static int receive_status(int in, struct ref *refs)
static int receive_unpack_status(int in)
{
struct ref *hint;
int ret = 0;
char *line = packet_read_line(in, NULL);
const char *line = packet_read_line(in, NULL);
if (!starts_with(line, "unpack "))
return error("did not receive remote status");
if (strcmp(line, "unpack ok")) {
error("unpack failed: %s", line + 7);
ret = -1;
}
if (strcmp(line, "unpack ok"))
return error("unpack failed: %s", line + 7);
return 0;
}

static int receive_status(int in, struct ref *refs)
{
struct ref *hint;
int ret;

hint = NULL;
ret = receive_unpack_status(in);
while (1) {
char *refname;
char *msg;
line = packet_read_line(in, NULL);
char *line = packet_read_line(in, NULL);
if (!line)
break;
if (!starts_with(line, "ok ") && !starts_with(line, "ng ")) {

Loading…
Cancel
Save