Browse Source
Write errors when repacking (eg, due to out-of-space conditions) can leave temporary packs (and possibly other files beginning with "tmp_") lying around which no existing codepath removes and which aren't obvious to the casual user. These can also be multi-megabyte files wasting noticeable space. Unfortunately there's no way to definitely tell in builtin-prune that a tmp_ file is not being used by a concurrent process, such as a fetch. However, it is documented that pruning should only be done on a quiet repository and --expire is honoured (using code from Johannes Schindelin, along with a test case he wrote) so that its safety is the same as that of loose object pruning. Since they might be signs of a problem (unlike orphaned loose objects) the names of any removed files are printed. Signed-off-by: David Tweed (david.tweed@gmail.com) Acked-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint


2 changed files with 71 additions and 0 deletions
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
#!/bin/sh |
||||
# |
||||
# Copyright (c) 2008 Johannes E. Schindelin |
||||
# |
||||
|
||||
test_description='prune' |
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success setup ' |
||||
|
||||
: > file && |
||||
git add file && |
||||
test_tick && |
||||
git commit -m initial && |
||||
git gc |
||||
|
||||
' |
||||
|
||||
test_expect_success 'prune stale packs' ' |
||||
|
||||
orig_pack=$(echo .git/objects/pack/*.pack) && |
||||
: > .git/objects/tmp_1.pack && |
||||
: > .git/objects/tmp_2.pack && |
||||
test-chmtime -86501 .git/objects/tmp_1.pack && |
||||
git prune --expire 1.day && |
||||
test -f $orig_pack && |
||||
test -f .git/objects/tmp_2.pack && |
||||
! test -f .git/objects/tmp_1.pack |
||||
|
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue