diff options
author | Doug Kelly <dougk.ff7@gmail.com> | 2016-01-13 11:07:11 -0600 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-01-13 12:12:30 -0800 |
commit | 8462ae4033b17537f997f188dc87ad5b5ee10f89 (patch) | |
tree | 18a0b6d24ad534d0003f349f5cc531864d3ecf54 | |
parent | adee53654d2eda2f062dae47aa48af3dd7cc6665 (diff) | |
download | git-8462ae4033b17537f997f188dc87ad5b5ee10f89.tar.gz |
t5304: ensure non-garbage files are not deleted
Explicitly test for and ensure files that may be wanted are not
deleted during a gc operation. These include .pack without .idx
(which may be in-flight), garbage in the directory that clearly is
not related to packing, and .keep files the user created.
Signed-off-by: Doug Kelly <dougk.ff7@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | t/t5304-prune.sh | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/t/t5304-prune.sh b/t/t5304-prune.sh index 4fa6e7aefd..f7c380c5cf 100755 --- a/t/t5304-prune.sh +++ b/t/t5304-prune.sh @@ -285,6 +285,23 @@ EOF test_cmp expected actual ' +test_expect_success 'ensure unknown garbage kept with gc' ' + test_when_finished "rm -f .git/objects/pack/fake*" && + test_when_finished "rm -f .git/objects/pack/foo*" && + : >.git/objects/pack/foo.keep && + : >.git/objects/pack/fake.pack && + : >.git/objects/pack/fake2.foo && + git gc && + git count-objects -v 2>stderr && + grep "^warning:" stderr | sort >actual && + cat >expected <<\EOF && +warning: garbage found: .git/objects/pack/fake2.foo +warning: no corresponding .idx or .pack: .git/objects/pack/foo.keep +warning: no corresponding .idx: .git/objects/pack/fake.pack +EOF + test_cmp expected actual +' + test_expect_success 'prune .git/shallow' ' SHA1=`echo hi|git commit-tree HEAD^{tree}` && echo $SHA1 >.git/shallow && |