1
0
mirror of https://github.com/git/git.git synced 2024-11-18 15:03:53 +01:00
git/git-prune-script
Linus Torvalds 1024932f01 fsck-cache: walk the 'refs' directory if the user doesn't give any
explicit references for reachability analysis.

We already had that as separate logic in git-prune-script, so this
is not a new special case - it's an old special case moved into
fsck, making normal usage be much simpler.
2005-05-18 10:16:14 -07:00

26 lines
509 B
Bash
Executable File

#!/bin/sh
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_DIR=.git}
: ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"}
git-fsck-cache --cache --unreachable "$@" |
sed -ne '/unreachable /{
s/unreachable [^ ][^ ]* //
s|\(..\)|\1/|p
}' | {
cd "$GIT_OBJECT_DIRECTORY" || exit
xargs -r $dryrun rm -f
}