X-Git-Url: https://git.octo.it/?p=git.git;a=blobdiff_plain;f=git-prune.sh;h=c5a5d29aaacf753b70e715169cbb7f74f0193e4a;hp=1fd8c731cdd3651e3cd3c527915db7a4c4324be0;hb=HEAD;hpb=5e80092f7e6db09a40a62e837ca3f74f0bc5ad73 diff --git a/git-prune.sh b/git-prune.sh index 1fd8c731..c5a5d29a 100755 --- a/git-prune.sh +++ b/git-prune.sh @@ -1,5 +1,6 @@ #!/bin/sh +USAGE='[-n] [--] [...]' . git-sh-setup dryrun= @@ -9,14 +10,18 @@ do case "$1" in -n) dryrun=-n echo=echo ;; --) break ;; - -*) echo >&2 "usage: git-prune [ -n ] [ heads... ]"; exit 1 ;; + -*) usage ;; *) break ;; esac shift; done sync -git-fsck-objects --full --cache --unreachable "$@" | +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 @@ -28,8 +33,7 @@ sed -ne '/unreachable /{ git-prune-packed $dryrun -redundant=$(git-pack-redundant --all) -if test "" != "$redundant" +if redundant=$(git-pack-redundant --all 2>/dev/null) && test "" != "$redundant" then if test "" = "$dryrun" then