X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git-prune.sh;h=7e7f0ad56d381dc546f1bc598e41c1d7fa1e3a36;hb=2777ef76be7174f698b3f53cc4ff38b4118de320;hp=9657dbf2711e40bfe035a22ec211811c88c89e8e;hpb=c1067050ce58b5b39f528fe634732da858664603;p=git.git diff --git a/git-prune.sh b/git-prune.sh index 9657dbf2..7e7f0ad5 100755 --- a/git-prune.sh +++ b/git-prune.sh @@ -1,6 +1,6 @@ #!/bin/sh -. git-sh-setup || die "Not a git archive" +. git-sh-setup dryrun= echo= @@ -15,13 +15,30 @@ do shift; done -git-fsck-objects --full --cache --unreachable "$@" | +sync +case "$#" in +0) git-fsck-objects --full --cache --unreachable ;; +*) git-fsck-objects --full --cache --unreachable $(git-rev-parse --all) "$@" ;; +esac | + sed -ne '/unreachable /{ s/unreachable [^ ][^ ]* // s|\(..\)|\1/|p }' | { cd "$GIT_OBJECT_DIRECTORY" || exit xargs $echo rm -f + rmdir 2>/dev/null [0-9a-f][0-9a-f] } git-prune-packed $dryrun + +redundant=$(git-pack-redundant --all) +if test "" != "$redundant" +then + if test "" = "$dryrun" + then + echo "$redundant" | xargs rm -f + else + echo rm -f "$redundant" + fi +fi