projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Document git aliases support
[git.git]
/
git-prune.sh
diff --git
a/git-prune.sh
b/git-prune.sh
index
ef31bd2
..
c5a5d29
100755
(executable)
--- a/
git-prune.sh
+++ b/
git-prune.sh
@@
-1,6
+1,7
@@
#!/bin/sh
#!/bin/sh
-. git-sh-setup || die "Not a git archive"
+USAGE='[-n] [--] [<head>...]'
+. git-sh-setup
dryrun=
echo=
dryrun=
echo=
@@
-9,14
+10,18
@@
do
case "$1" in
-n) dryrun=-n echo=echo ;;
--) break ;;
case "$1" in
-n) dryrun=-n echo=echo ;;
--) break ;;
- -*)
echo >&2 "usage: git-prune [ -n ] [ heads... ]"; exit 1
;;
+ -*)
usage
;;
*) break ;;
esac
shift;
done
sync
*) 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
sed -ne '/unreachable /{
s/unreachable [^ ][^ ]* //
s|\(..\)|\1/|p
@@
-27,3
+32,13
@@
sed -ne '/unreachable /{
}
git-prune-packed $dryrun
}
git-prune-packed $dryrun
+
+if redundant=$(git-pack-redundant --all 2>/dev/null) && test "" != "$redundant"
+then
+ if test "" = "$dryrun"
+ then
+ echo "$redundant" | xargs rm -f
+ else
+ echo rm -f "$redundant"
+ fi
+fi