7b61d05c4b58c57c833563955e3206f0e4142c39
1#!/bin/sh
2
3USAGE='[-n] [--] [<head>...]'
4. git-sh-setup
5
6dryrun=
7echo=
8while case "$#" in 0) break ;; esac
9do
10 case "$1" in
11 -n) dryrun=-n echo=echo ;;
12 --) break ;;
13 -*) usage ;;
14 *) break ;;
15 esac
16 shift;
17done
18
19sync
20case "$#" in
210) git-fsck-objects --full --cache --unreachable ;;
22*) git-fsck-objects --full --cache --unreachable $(git-rev-parse --all) "$@" ;;
23esac |
24
25sed -ne '/unreachable /{
26 s/unreachable [^ ][^ ]* //
27 s|\(..\)|\1/|p
28}' | {
29 cd "$GIT_OBJECT_DIRECTORY" || exit
30 xargs $echo rm -f
31 rmdir 2>/dev/null [0-9a-f][0-9a-f]
32}
33
34git-prune-packed $dryrun
35
36redundant=$(git-pack-redundant --all)
37if test "" != "$redundant"
38then
39 if test "" = "$dryrun"
40 then
41 echo "$redundant" | xargs rm -f
42 else
43 echo rm -f "$redundant"
44 fi
45fi