From: Nguyen Thai Ngoc Duy Date: Tue, 15 May 2012 11:18:42 GMT Subject: Re: [PATCH v2] pack-objects: use streaming interface for reading large loose blobs Message-ID: In-Reply-To: <7v62byh7l4.fsf@alter.siamese.dyndns.org> On Tue, May 15, 2012 at 2:43 AM, Junio C Hamano wrote: > Nguyễn Thái Ngọc Duy   writes: > >> git usually streams large blobs directly to packs. But there are cases >> diff --git a/t/t1050-large.sh b/t/t1050-large.sh >> index 55ed955..7fbd2e1 100755 >> --- a/t/t1050-large.sh >> +++ b/t/t1050-large.sh >> @@ -134,6 +134,22 @@ test_expect_success 'repack' ' >>       git repack -ad >>  ' >> >> +test_expect_success 'pack-objects with large loose object' ' >> +     echo Z | dd of=large4 bs=1k seek=2000 && >> +     OBJ=9f36d94e145816ec642592c09cc8e601d83af157 && >> +     P=.git/objects/9f/36d94e145816ec642592c09cc8e601d83af157 && > > I do not think you need these hardcoded constants; you will run > hash-object later, no? > > Also, relying on $P to exist after hash-object -w returns is somewhat > flaky, no? I need it to be a loose object to test this code path. Maybe this instead? test_expect_success 'pack-objects with large loose object' ' SHA1=`git hash-object huge` && test_create_repo loose && echo $SHA1 | git pack-objects --stdout | GIT_ALLOC_LIMIT=0 GIT_DIR=loose/.git git unpack-objects && echo $SHA1 | GIT_DIR=loose/.git git pack-objects pack && test_create_repo packed && mv pack-* packed/.git/objects/pack && GIT_DIR=packed/.git git cat-file blob $SHA1 >actual && cmp huge actual ' >> +     rm $P && >> +     git cat-file blob $OBJ >actual && >> +     cmp large4 actual >> +' > > In any case, the patch when applied on top of cd07cc5 (Update draft > release notes to 1.7.11 (11th batch), 2012-05-11) does not pass this part > of the test on my box. Interesting. It passes for me (same base). I assume rm failed? -- Duy