From: Junio C Hamano Date: Tue, 28 Jun 2005 23:49:28 +0000 (-0700) Subject: [PATCH] Fix unpack-objects for header length information. X-Git-Tag: v0.99~136 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=e1ddc9768469cb8c25387dc0c75dd4f40ea71096;p=git.git [PATCH] Fix unpack-objects for header length information. Standalone unpack-objects command was not adjusted for header length encoding change when dealing with deltified entry. This fixes it. Signed-off-by: Junio C Hamano Signed-off-by: Linus Torvalds --- diff --git a/pack-objects.c b/pack-objects.c index d1e62dc01..36f515b73 100644 --- a/pack-objects.c +++ b/pack-objects.c @@ -97,9 +97,9 @@ static unsigned long write_object(struct sha1file *f, struct object_entry *entry die("object %s size inconsistency (%lu vs %lu)", sha1_to_hex(entry->sha1), size, entry->size); /* - * The object header is a byte of 'type' followed by four bytes of - * length, except for deltas that has the 20 bytes of delta sha - * instead. + * The object header is a byte of 'type' followed by zero or + * more bytes of length. For deltas, the 20 bytes of delta sha1 + * follows that. */ obj_type = entry->type; if (entry->delta) { diff --git a/unpack-objects.c b/unpack-objects.c index 98b696cf2..fbc899408 100644 --- a/unpack-objects.c +++ b/unpack-objects.c @@ -271,7 +271,7 @@ static void unpack_entry(struct pack_entry *entry) unpack_non_delta_entry(entry, type, pack, size, left); return; case OBJ_DELTA: - unpack_delta_entry(entry, pack+5, size, left); + unpack_delta_entry(entry, pack, size, left); return; } bad: