b0966e1010
It's too dangerous not to. We need to follow alternate object directories etc, or we might say something is unreachable just because we didn't look it up completely.
26 lines
478 B
Bash
Executable File
26 lines
478 B
Bash
Executable File
#!/bin/sh
|
|
|
|
. git-sh-setup-script || die "Not a git archive"
|
|
|
|
dryrun=
|
|
while case "$#" in 0) break ;; esac
|
|
do
|
|
case "$1" in
|
|
-n) dryrun=echo ;;
|
|
--) break ;;
|
|
-*) echo >&2 "usage: git-prune-script [ -n ] [ heads... ]"; exit 1 ;;
|
|
*) break ;;
|
|
esac
|
|
shift;
|
|
done
|
|
|
|
git-fsck-cache --full --cache --unreachable "$@" |
|
|
sed -ne '/unreachable /{
|
|
s/unreachable [^ ][^ ]* //
|
|
s|\(..\)|\1/|p
|
|
}' | {
|
|
cd "$GIT_OBJECT_DIRECTORY" || exit
|
|
xargs -r $dryrun rm -f
|
|
}
|
|
|