Skip to content

Commit

Permalink
test local clone by copying
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Clemens Buchacher authored and Junio C Hamano committed Sep 13, 2009
1 parent 65d15ed commit 98df233
Showing 1 changed file with 33 additions and 21 deletions.
54 changes: 33 additions & 21 deletions t/t5304-prune.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 &&
Expand All @@ -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 &&
Expand All @@ -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
Expand Down Expand Up @@ -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/ .*//") &&
Expand All @@ -140,14 +139,27 @@ 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 &&
test ! -f $BLOB_FILE
'

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

0 comments on commit 98df233

Please sign in to comment.