diff options
author | Junio C Hamano <junkio@cox.net> | 2006-07-05 18:12:12 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-08-12 22:21:43 -0700 |
commit | c04c4e5708c9ad3dc534ff50ad8f28de5a7cfbff (patch) | |
tree | 4dc127fce33a588f686b6cdd891289262acb8675 /upload-pack.c | |
parent | 182a8dabd5f5f646608f3857f10f3ac18c3d1445 (diff) | |
download | git-c04c4e5708c9ad3dc534ff50ad8f28de5a7cfbff.tar.gz |
upload-pack: minor clean-up in multi-ack logic
No changes to what it does, but separating the codepath clearly
with if ... else if ... chain makes it easier to follow.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'upload-pack.c')
-rw-r--r-- | upload-pack.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/upload-pack.c b/upload-pack.c index bbd6bd60b5..35c7ecb7b4 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -351,7 +351,8 @@ static int got_sha1(char *hex, unsigned char *sha1) static int get_common_commits(void) { static char line[1000]; - unsigned char sha1[20], last_sha1[20]; + unsigned char sha1[20]; + char hex[41], last_hex[41]; int len; track_object_refs = 0; @@ -368,21 +369,22 @@ static int get_common_commits(void) } len = strip(line, len); if (!strncmp(line, "have ", 5)) { - if (got_sha1(line+5, sha1) && - (multi_ack || have_obj.nr == 1)) { - packet_write(1, "ACK %s%s\n", - sha1_to_hex(sha1), - multi_ack ? " continue" : ""); - if (multi_ack) - memcpy(last_sha1, sha1, 20); + if (got_sha1(line+5, sha1)) { + memcpy(hex, sha1_to_hex(sha1), 41); + if (multi_ack) { + const char *msg = "ACK %s continue\n"; + packet_write(1, msg, hex); + memcpy(last_hex, hex, 41); + } + else if (have_obj.nr == 1) + packet_write(1, "ACK %s\n", hex); } continue; } if (!strcmp(line, "done")) { if (have_obj.nr > 0) { if (multi_ack) - packet_write(1, "ACK %s\n", - sha1_to_hex(last_sha1)); + packet_write(1, "ACK %s\n", last_hex); return 0; } packet_write(1, "NAK\n"); |