X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-prune-script;h=2e130c7f9698729f471edbdfdf9a3cce63c56ddd;hb=ff3412ee1f74cc267e6d65c03c5fd8ea2214fbe7;hp=ec9f72de793f88a82ea7b9780c76c4f665264d02;hpb=5569bf9bbedd63a00780fc5c110e0cfab3aa97b9;p=git.git diff --git a/git-prune-script b/git-prune-script index ec9f72de..2e130c7f 100755 --- a/git-prune-script +++ b/git-prune-script @@ -1,9 +1,13 @@ #!/bin/sh + +. git-sh-setup-script || die "Not a git archive" + dryrun= +echo= while case "$#" in 0) break ;; esac do case "$1" in - -n) dryrun=echo ;; + -n) dryrun=-n echo=echo ;; --) break ;; -*) echo >&2 "usage: git-prune-script [ -n ] [ heads... ]"; exit 1 ;; *) break ;; @@ -11,15 +15,13 @@ do shift; done -: ${GIT_DIR=.git} -: ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"} - -git-fsck-cache --cache --unreachable "$@" | +git-fsck-cache --full --cache --unreachable "$@" | sed -ne '/unreachable /{ s/unreachable [^ ][^ ]* // s|\(..\)|\1/|p }' | { cd "$GIT_OBJECT_DIRECTORY" || exit - xargs -r $dryrun rm -f + xargs $echo rm -f } +git-prune-packed $dryrun