#!/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