diff options
author | Nicolas Pitre <nico@cam.org> | 2006-09-21 00:11:59 -0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-09-22 19:24:52 -0700 |
commit | 16854571aae6302f457c5fbee41ac64669b09595 (patch) | |
tree | ad636b706b3f8ee8beb8ebbbf762016f3d0454c5 | |
parent | 3d5c0cc9387b35df47c988fbc0e4379e413d783e (diff) | |
download | git-16854571aae6302f457c5fbee41ac64669b09595.tar.gz |
move pack creation to version 3
It's been quite a while now that GIT is able to read version 3 packs.
Let's create them at last.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | diff-delta.c | 8 | ||||
-rw-r--r-- | pack.h | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/diff-delta.c b/diff-delta.c index fa16d06c8d..51df4608a8 100644 --- a/diff-delta.c +++ b/diff-delta.c @@ -308,8 +308,8 @@ create_delta(const struct delta_index *index, continue; if (ref_size > top - src) ref_size = top - src; - if (ref_size > 0x10000) - ref_size = 0x10000; + if (ref_size > 0xffffff) + ref_size = 0xffffff; if (ref_size <= msize) break; while (ref_size-- && *src++ == *ref) @@ -318,6 +318,8 @@ create_delta(const struct delta_index *index, /* this is our best match so far */ msize = ref - entry->ptr; moff = entry->ptr - ref_data; + if (msize >= 0x10000) + break; /* this is good enough */ } } @@ -381,6 +383,8 @@ create_delta(const struct delta_index *index, if (msize & 0xff) { out[outpos++] = msize; i |= 0x10; } msize >>= 8; if (msize & 0xff) { out[outpos++] = msize; i |= 0x20; } + msize >>= 8; + if (msize & 0xff) { out[outpos++] = msize; i |= 0x40; } *op = i; } @@ -7,7 +7,7 @@ * Packed object header */ #define PACK_SIGNATURE 0x5041434b /* "PACK" */ -#define PACK_VERSION 2 +#define PACK_VERSION 3 #define pack_version_ok(v) ((v) == htonl(2) || (v) == htonl(3)) struct pack_header { unsigned int hdr_signature; |