Skip to content

Commit

Permalink
upload-pack: minor clean-up in multi-ack logic
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Junio C Hamano committed Aug 13, 2006
1 parent 182a8da commit c04c4e5
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions upload-pack.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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");
Expand Down

0 comments on commit c04c4e5

Please sign in to comment.