Browse Source

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>
maint
Clemens Buchacher 16 years ago committed by Junio C Hamano
parent
commit
98df233e2d
  1. 54
      t/t5304-prune.sh

54
t/t5304-prune.sh

@ -6,6 +6,17 @@ @@ -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' ' @@ -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' ' @@ -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' ' @@ -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' ' @@ -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>' ' @@ -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

Loading…
Cancel
Save