#!/bin/sh | |
. git-sh-setup || die "Not a git archive" | |
dryrun= | |
echo= | |
while case "$#" in 0) break ;; esac | |
do | |
case "$1" in | |
-n) dryrun=-n echo=echo ;; | |
--) break ;; | |
-*) echo >&2 "usage: git-prune [ -n ] [ heads... ]"; exit 1 ;; | |
*) break ;; | |
esac | |
shift; | |
done | |
git-fsck-objects --full --cache --unreachable "$@" | | |
sed -ne '/unreachable /{ | |
s/unreachable [^ ][^ ]* // | |
s|\(..\)|\1/|p | |
}' | { | |
cd "$GIT_OBJECT_DIRECTORY" || exit | |
xargs $echo rm -f | |
} | |
git-prune-packed $dryrun |