X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git-prune-script;h=2c678f26a4ec8c9a319944b76c427b30450bf861;hb=71fb3de0eed70bba1c7e28c8a0a2968efc48b9f3;hp=30a989e8f4d19bbcbc71bbf1d74015e56bf9728b;hpb=ae7c0c92c0713307986bcd1fb54fa0694aae962a;p=git.git diff --git a/git-prune-script b/git-prune-script index 30a989e8..2c678f26 100755 --- a/git-prune-script +++ b/git-prune-script @@ -1,5 +1,7 @@ #!/bin/sh +. git-sh-setup-script || die "Not a git archive" + dryrun= while case "$#" in 0) break ;; esac do @@ -12,26 +14,12 @@ do shift; done -# Defaulting to include .git/refs/*/* may be debatable from the -# purist POV but power users can always give explicit parameters -# to the script anyway. - -case "$#" in -0) - x_40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]' - x_40="$x_40$x_40$x_40$x_40$x_40$x_40$x_40$x_40" - set x $(sed -ne "/^$x_40\$/p" .git/HEAD .git/refs/*/* 2>/dev/null) - shift ;; -esac - -git-fsck-cache --cache --unreachable "$@" | +git-fsck-cache --full --cache --unreachable "$@" | sed -ne '/unreachable /{ s/unreachable [^ ][^ ]* // s|\(..\)|\1/|p }' | { - case "$SHA1_FILE_DIRECTORY" in - '') cd .git/objects/ ;; - *) cd "$SHA1_FILE_DIRECTORY" ;; - esac || exit + cd "$GIT_OBJECT_DIRECTORY" || exit xargs -r $dryrun rm -f } +