ls-tree: major rewrite to do pathspec
[gitweb.git] / git-prune.sh
index 9657dbf2711e40bfe035a22ec211811c88c89e8e..1fd8c731cdd3651e3cd3c527915db7a4c4324be0 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. git-sh-setup || die "Not a git archive"
+. git-sh-setup
 
 dryrun=
 echo=
@@ -15,6 +15,7 @@ do
     shift;
 done
 
+sync
 git-fsck-objects --full --cache --unreachable "$@" |
 sed -ne '/unreachable /{
     s/unreachable [^ ][^ ]* //
@@ -22,6 +23,18 @@ sed -ne '/unreachable /{
 }' | {
        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