git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] fix index-pack with packs >4GB containing deltas on 32-bit machines
@ 2007-11-11  4:29 Nicolas Pitre
  2007-11-11 21:25 ` Junio C Hamano
  0 siblings, 1 reply; 2+ messages in thread
From: Nicolas Pitre @ 2007-11-11  4:29 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

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>
---
diff --git a/index-pack.c b/index-pack.c
index 469a330..9fd6982 100644
--- a/index-pack.c
+++ b/index-pack.c
@@ -256,7 +256,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;

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] fix index-pack with packs >4GB containing deltas on 32-bit machines
  2007-11-11  4:29 [PATCH] fix index-pack with packs >4GB containing deltas on 32-bit machines Nicolas Pitre
@ 2007-11-11 21:25 ` Junio C Hamano
  0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2007-11-11 21:25 UTC (permalink / raw)
  To: Nicolas Pitre; +Cc: git

Looks obviously correct.  Thanks.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-11-11 21:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-11  4:29 [PATCH] fix index-pack with packs >4GB containing deltas on 32-bit machines Nicolas Pitre
2007-11-11 21:25 ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).