1#!/bin/sh23USAGE='[-n] [--] [<head>...]'4. git-sh-setup56dryrun=7echo=8while case "$#" in 0) break ;; esac9do10case "$1" in11-n) dryrun=-n echo=echo ;;12--) break ;;13-*) usage ;;14*) break ;;15esac16shift;17done1819sync20case "$#" in210) git-fsck-objects --full --cache --unreachable ;;22*) git-fsck-objects --full --cache --unreachable $(git-rev-parse --all) "$@" ;;23esac |2425sed -ne '/unreachable /{26s/unreachable [^ ][^ ]* //27s|\(..\)|\1/|p28}' | {29cd "$GIT_OBJECT_DIRECTORY" || exit30xargs $echo rm -f31rmdir 2>/dev/null [0-9a-f][0-9a-f]32}3334git-prune-packed $dryrun3536redundant=$(git-pack-redundant --all)37if test "" != "$redundant"38then39if test "" = "$dryrun"40then41echo "$redundant" | xargs rm -f42else43echo rm -f "$redundant"44fi45fi