#!/bin/sh | |
# | |
# Copyright (c) 2006, Shawn O. Pearce | |
# | |
# Cleanup unreachable files and optimize the repository. | |
USAGE='[--prune]' | |
SUBDIRECTORY_OK=Yes | |
. git-sh-setup | |
no_prune=: | |
while test $# != 0 | |
do | |
case "$1" in | |
--prune) | |
no_prune= | |
;; | |
--) | |
usage | |
;; | |
esac | |
shift | |
done | |
case "$(git config --get gc.packrefs)" in | |
notbare|"") | |
test $(is_bare_repository) = true || pack_refs=true;; | |
*) | |
pack_refs=$(git config --bool --get gc.packrefs) | |
esac | |
test "true" != "$pack_refs" || | |
git pack-refs --prune && | |
git reflog expire --all && | |
git-repack -a -d -l && | |
$no_prune git prune && | |
git rerere gc || exit |