summaryrefslogtreecommitdiff
path: root/git-prune.sh
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@osdl.org>2006-07-06 17:16:22 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-07-09 07:57:22 (GMT)
commitba84a797e76c27932e0b317c7ce54925e81093f7 (patch)
tree7236401136c1c8195008556a5e0eac087e04cc15 /git-prune.sh
parent88f0d5d7d95f815d2e8a36a8ceb7459dbd90992c (diff)
downloadgit-ba84a797e76c27932e0b317c7ce54925e81093f7.zip
git-ba84a797e76c27932e0b317c7ce54925e81093f7.tar.gz
git-ba84a797e76c27932e0b317c7ce54925e81093f7.tar.bz2
builtin "git prune"
This actually removes the objects to be pruned, unless you specify "-n" (at which point it will just tell you which files it would prune). This doesn't do the pack-file pruning that the shell-script used to do, but if somebody really wants to, they could add it easily enough. I wonder how useful it is, though, considering that "git repack -a -d" is just a lot more efficient and generates a better end result. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-prune.sh')
-rwxr-xr-xgit-prune.sh44
1 files changed, 0 insertions, 44 deletions
diff --git a/git-prune.sh b/git-prune.sh
deleted file mode 100755
index c5a5d29..0000000
--- a/git-prune.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-USAGE='[-n] [--] [<head>...]'
-. git-sh-setup
-
-dryrun=
-echo=
-while case "$#" in 0) break ;; esac
-do
- case "$1" in
- -n) dryrun=-n echo=echo ;;
- --) break ;;
- -*) usage ;;
- *) break ;;
- esac
- shift;
-done
-
-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
-
-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