From: Linus Torvalds Date: Wed, 29 Jun 2005 16:53:20 +0000 (-0700) Subject: Re-instate dry-run logic in git-unpack-objects X-Git-Tag: v0.99~125 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=dddafffef66041689f54837ac8e9bf717bb057b4;p=git.git Re-instate dry-run logic in git-unpack-objects It can no longer be as verbose, since it doesn't have a good way to resolve deltas (now that it is purely streaming, it cannot seek around to read the objects a delta is based on). But it can check that the thing unpacks cleanly at least as far as pack syntax goes - all the objects uncompress cleanly, and the pack has the right final SHA1. --- diff --git a/unpack-objects.c b/unpack-objects.c index 0d15c0038..97d268187 100644 --- a/unpack-objects.c +++ b/unpack-objects.c @@ -155,7 +155,8 @@ static int unpack_non_delta_entry(enum object_type kind, unsigned long size) case OBJ_TAG: type = "tag"; break; default: die("bad type %d", kind); } - write_object(buf, size, type); + if (!dry_run) + write_object(buf, size, type); free(buf); return 0; } @@ -171,6 +172,10 @@ static int unpack_delta_entry(unsigned long delta_size) use(20); delta_data = get_data(delta_size); + if (dry_run) { + free(delta_data); + return 0; + } if (!has_sha1_file(base_sha1)) { add_delta_to_list(base_sha1, delta_data, delta_size);