Merge branch 'dk/gc-idx-wo-pack' into maint
Having a leftover .idx file without corresponding .pack file in the repository hurts performance; "git gc" learned to prune them. We may want to do the same for .bitmap (and notice but not prune .keep) without corresponding .pack, but that can be a separate topic. * dk/gc-idx-wo-pack: gc: remove garbage .idx files from pack dir t5304: test cleaning pack garbage prepare_packed_git(): refactor garbage reporting in pack directory
This commit is contained in:
@ -219,6 +219,7 @@ test_expect_success 'gc: prune old objects after local clone' '
|
||||
|
||||
test_expect_success 'garbage report in count-objects -v' '
|
||||
test_when_finished "rm -f .git/objects/pack/fake*" &&
|
||||
test_when_finished "rm -f .git/objects/pack/foo*" &&
|
||||
: >.git/objects/pack/foo &&
|
||||
: >.git/objects/pack/foo.bar &&
|
||||
: >.git/objects/pack/foo.keep &&
|
||||
@ -244,6 +245,26 @@ EOF
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'clean pack garbage 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/foo.pack &&
|
||||
: >.git/objects/pack/fake.idx &&
|
||||
: >.git/objects/pack/fake2.keep &&
|
||||
: >.git/objects/pack/fake2.idx &&
|
||||
: >.git/objects/pack/fake3.keep &&
|
||||
git gc &&
|
||||
git count-objects -v 2>stderr &&
|
||||
grep "^warning:" stderr | sort >actual &&
|
||||
cat >expected <<\EOF &&
|
||||
warning: no corresponding .idx or .pack: .git/objects/pack/fake3.keep
|
||||
warning: no corresponding .idx: .git/objects/pack/foo.keep
|
||||
warning: no corresponding .idx: .git/objects/pack/foo.pack
|
||||
EOF
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'prune .git/shallow' '
|
||||
SHA1=`echo hi|git commit-tree HEAD^{tree}` &&
|
||||
echo $SHA1 >.git/shallow &&
|
||||
|
Reference in New Issue
Block a user