diff options
author | Nicolas Pitre <nico@cam.org> | 2007-11-11 05:29:10 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-11-11 11:57:13 +0100 |
commit | a91ef6e75b897a255cc17b70014a39e68dd54c7a (patch) | |
tree | bf52ced5c9bcd3ceb895481d3cd3262331a218d0 /index-pack.c | |
parent | git-hash-object should honor config variables (diff) | |
download | git-a91ef6e75b897a255cc17b70014a39e68dd54c7a.tar.xz git-a91ef6e75b897a255cc17b70014a39e68dd54c7a.zip |
fix index-pack with packs >4GB containing deltas on 32-bit machines
This probably hasn't been properly tested before. Here's a script to
create a 8GB repo with the necessary characteristics (copy the
test-genrandom executable from the Git build tree to /tmp first):
-----
#!/bin/bash
git init
git config core.compression 0
# create big objects with no deltas
for i in $(seq -w 1 2 63)
do
echo $i
/tmp/test-genrandom $i 268435456 > file_$i
git add file_$i
rm file_$i
echo "file_$i -delta" >> .gitattributes
done
# create "deltifiable" objects in between big objects
for i in $(seq -w 2 2 64)
do
echo "$i $i $i" >> grow
cp grow file_$i
git add file_$i
rm file_$i
done
rm grow
# create a pack with them
git commit -q -m "commit of big objects interlaced with small deltas"
git repack -a -d
-----
Then clone this repo over the Git protocol.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'index-pack.c')
-rw-r--r-- | index-pack.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/index-pack.c b/index-pack.c index db58e05041..c232e3fc78 100644 --- a/index-pack.c +++ b/index-pack.c @@ -254,7 +254,7 @@ static void *unpack_raw_entry(struct object_entry *obj, union delta_base *delta_ static void *get_data_from_pack(struct object_entry *obj) { - unsigned long from = obj[0].idx.offset + obj[0].hdr_size; + off_t from = obj[0].idx.offset + obj[0].hdr_size; unsigned long len = obj[1].idx.offset - from; unsigned long rdy = 0; unsigned char *src, *data; |