diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-01-29 13:18:50 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-01-29 13:18:50 -0800 |
commit | 7b718fbf17f5b51887d420e6edc9dcb7b0c0f83c (patch) | |
tree | 4eb9885e931f18d6dfb9c3c6dc5484a0b60d1250 /upload-pack.c | |
parent | 7859f533e2247f21cdf3fa74e78b600c9ec62270 (diff) | |
parent | d336572f57e398318a0f6c51cc760d5be9872cc2 (diff) | |
download | git-7b718fbf17f5b51887d420e6edc9dcb7b0c0f83c.tar.gz |
Merge branch 'cb/push-quiet'
* cb/push-quiet:
t5541: avoid TAP test miscounting
fix push --quiet: add 'quiet' capability to receive-pack
server_supports(): parse feature list more carefully
Diffstat (limited to 'upload-pack.c')
-rw-r--r-- | upload-pack.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/upload-pack.c b/upload-pack.c index 6f36f6255c..0d11e21a68 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -585,6 +585,7 @@ static void receive_needs(void) write_str_in_full(debug_fd, "#S\n"); for (;;) { struct object *o; + const char *features; unsigned char sha1_buf[20]; len = packet_read_line(0, line, sizeof(line)); reset_timeout(); @@ -616,23 +617,26 @@ static void receive_needs(void) get_sha1_hex(line+5, sha1_buf)) die("git upload-pack: protocol error, " "expected to get sha, not '%s'", line); - if (strstr(line+45, "multi_ack_detailed")) + + features = line + 45; + + if (parse_feature_request(features, "multi_ack_detailed")) multi_ack = 2; - else if (strstr(line+45, "multi_ack")) + else if (parse_feature_request(features, "multi_ack")) multi_ack = 1; - if (strstr(line+45, "no-done")) + if (parse_feature_request(features, "no-done")) no_done = 1; - if (strstr(line+45, "thin-pack")) + if (parse_feature_request(features, "thin-pack")) use_thin_pack = 1; - if (strstr(line+45, "ofs-delta")) + if (parse_feature_request(features, "ofs-delta")) use_ofs_delta = 1; - if (strstr(line+45, "side-band-64k")) + if (parse_feature_request(features, "side-band-64k")) use_sideband = LARGE_PACKET_MAX; - else if (strstr(line+45, "side-band")) + else if (parse_feature_request(features, "side-band")) use_sideband = DEFAULT_PACKET_MAX; - if (strstr(line+45, "no-progress")) + if (parse_feature_request(features, "no-progress")) no_progress = 1; - if (strstr(line+45, "include-tag")) + if (parse_feature_request(features, "include-tag")) use_include_tag = 1; o = lookup_object(sha1_buf); |