From: Junio C Hamano Date: Fri, 14 Jun 2013 21:59:00 GMT Subject: Re: [PATCH 2/2] unpack_entry: do not die when we fail to apply a delta Message-ID: <7vk3lwmk0r.fsf@alter.siamese.dyndns.org> In-Reply-To: <20130614215334.GB3821@sigill.intra.peff.net> Jeff King writes: > test_expect_success \ > + 'corruption of delta base reference pointing to wrong object' \ > + 'create_new_pack --delta-base-offset && > + git prune-packed && > + printf "\220\033" | do_corrupt_object $blob_3 2 && Interesting. You cheated in a different way with a hardcoded offset, instead of hardcoded knowledge of where the object name is stored in binary in the .idx file ;-) > + git cat-file blob $blob_1 >/dev/null && > + git cat-file blob $blob_2 >/dev/null && > + test_must_fail git cat-file blob $blob_3 >/dev/null' > + > +test_expect_success \ > + '... but having a loose copy allows for full recovery' \ > + 'mv ${pack}.idx tmp && > + git hash-object -t blob -w file_3 && > + mv tmp ${pack}.idx && > + git cat-file blob $blob_1 > /dev/null && > + git cat-file blob $blob_2 > /dev/null && > + git cat-file blob $blob_3 > /dev/null' > + > +test_expect_success \ > + '... and then a repack "clears" the corruption' \ > + 'do_repack --delta-base-offset --no-reuse-delta && > + git prune-packed && > + git verify-pack ${pack}.pack && > + git cat-file blob $blob_1 > /dev/null && > + git cat-file blob $blob_2 > /dev/null && > + git cat-file blob $blob_3 > /dev/null' Nice. Will replace the one I queued yesterday with these two patches. > +test_expect_success \ > 'corrupting header to have too small output buffer fails unpack' \ > 'create_new_pack && > git prune-packed &&