test local clone by copying
Test the effect of an earlier change by f7835a2
(preserve mtime of local
clone, 2009-09-12) to keep stale loose object files stale in the new
repository when a local clone is made by copying files in .git/
directory.
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
65d15ed992
commit
98df233e2d
@ -6,6 +6,17 @@
|
||||
test_description='prune'
|
||||
. ./test-lib.sh
|
||||
|
||||
day=$((60*60*24))
|
||||
week=$(($day*7))
|
||||
|
||||
add_blob() {
|
||||
before=$(git count-objects | sed "s/ .*//") &&
|
||||
BLOB=$(echo aleph_0 | git hash-object -w --stdin) &&
|
||||
BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
|
||||
test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
|
||||
test -f $BLOB_FILE
|
||||
}
|
||||
|
||||
test_expect_success setup '
|
||||
|
||||
: > file &&
|
||||
@ -31,11 +42,7 @@ test_expect_success 'prune stale packs' '
|
||||
|
||||
test_expect_success 'prune --expire' '
|
||||
|
||||
before=$(git count-objects | sed "s/ .*//") &&
|
||||
BLOB=$(echo aleph | git hash-object -w --stdin) &&
|
||||
BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
|
||||
test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
|
||||
test -f $BLOB_FILE &&
|
||||
add_blob &&
|
||||
git prune --expire=1.hour.ago &&
|
||||
test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
|
||||
test -f $BLOB_FILE &&
|
||||
@ -48,16 +55,12 @@ test_expect_success 'prune --expire' '
|
||||
|
||||
test_expect_success 'gc: implicit prune --expire' '
|
||||
|
||||
before=$(git count-objects | sed "s/ .*//") &&
|
||||
BLOB=$(echo aleph_0 | git hash-object -w --stdin) &&
|
||||
BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
|
||||
test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
|
||||
test -f $BLOB_FILE &&
|
||||
test-chmtime =-$((86400*14-30)) $BLOB_FILE &&
|
||||
add_blob &&
|
||||
test-chmtime =-$((2*$week-30)) $BLOB_FILE &&
|
||||
git gc &&
|
||||
test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
|
||||
test -f $BLOB_FILE &&
|
||||
test-chmtime =-$((86400*14+1)) $BLOB_FILE &&
|
||||
test-chmtime =-$((2*$week+1)) $BLOB_FILE &&
|
||||
git gc &&
|
||||
test $before = $(git count-objects | sed "s/ .*//") &&
|
||||
! test -f $BLOB_FILE
|
||||
@ -114,12 +117,8 @@ test_expect_success 'prune: do not prune heads listed as an argument' '
|
||||
|
||||
test_expect_success 'gc --no-prune' '
|
||||
|
||||
before=$(git count-objects | sed "s/ .*//") &&
|
||||
BLOB=$(echo aleph_0 | git hash-object -w --stdin) &&
|
||||
BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
|
||||
test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
|
||||
test -f $BLOB_FILE &&
|
||||
test-chmtime =-$((86400*5001)) $BLOB_FILE &&
|
||||
add_blob &&
|
||||
test-chmtime =-$((5001*$day)) $BLOB_FILE &&
|
||||
git config gc.pruneExpire 2.days.ago &&
|
||||
git gc --no-prune &&
|
||||
test 1 = $(git count-objects | sed "s/ .*//") &&
|
||||
@ -140,9 +139,8 @@ test_expect_success 'gc respects gc.pruneExpire' '
|
||||
|
||||
test_expect_success 'gc --prune=<date>' '
|
||||
|
||||
BLOB=$(echo aleph_0 | git hash-object -w --stdin) &&
|
||||
BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
|
||||
test-chmtime =-$((86400*5001)) $BLOB_FILE &&
|
||||
add_blob &&
|
||||
test-chmtime =-$((5001*$day)) $BLOB_FILE &&
|
||||
git gc --prune=5002.days.ago &&
|
||||
test -f $BLOB_FILE &&
|
||||
git gc --prune=5000.days.ago &&
|
||||
@ -150,4 +148,18 @@ test_expect_success 'gc --prune=<date>' '
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'gc: prune old objects after local clone' '
|
||||
add_blob &&
|
||||
test-chmtime =-$((2*$week+1)) $BLOB_FILE &&
|
||||
git clone --no-hardlinks . aclone &&
|
||||
(
|
||||
cd aclone &&
|
||||
test 1 = $(git count-objects | sed "s/ .*//") &&
|
||||
test -f $BLOB_FILE &&
|
||||
git gc --prune &&
|
||||
test 0 = $(git count-objects | sed "s/ .*//") &&
|
||||
! test -f $BLOB_FILE
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user