}
check_fsck () {
- output=$(git fsck-objects --full)
+ output=$(git fsck --full)
case "$1" in
'')
test -z "$output" ;;
check_fsck &&
chmod +x C &&
- ( test "`git repo-config --bool core.filemode`" != false ||
+ ( test "`git config --bool core.filemode`" != false ||
echo executable >>C ) &&
git add C &&
test_tick && git commit -m dragon &&
check_have A B C D E F G H I J K L &&
- git prune --grace=off &&
+ git prune &&
check_have A B C D E F G H I J K L &&
check_have A B C D E F G H I J K L &&
- git prune --grace=off &&
+ git prune &&
check_have A B C D E F G H I J K L &&
test_expect_success 'prune and fsck' '
- git prune --grace=off &&
+ git prune &&
check_fsck &&
check_have A B C D E H L &&
'
+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 &&
+ git reset --hard &&
+ git prune --expire=1.hour.ago &&
+ test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
+ test -f $BLOB_FILE &&
+ test-chmtime -86500 $BLOB_FILE &&
+ git prune --expire 1.day &&
+ test $before = $(git count-objects | sed "s/ .*//") &&
+ ! test -f $BLOB_FILE
+
+'
+
test_done