diff options
author | James Bowes <jbowes@dangerouslyinc.com> | 2007-03-14 04:58:22 +0300 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-03-17 10:34:19 +0300 |
commit | 6757ada403bf0eb0fb1fddcffbbeb74d91cbbb51 (patch) | |
tree | 63d9b8963756dc94eb7cfc9ca8d57f94830c9d7b /contrib/examples | |
parent | 1589e0517fd22c198799504d6888d5a475024152 (diff) |
Make gc a builtin.
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'contrib/examples')
-rwxr-xr-x | contrib/examples/git-gc.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/contrib/examples/git-gc.sh b/contrib/examples/git-gc.sh new file mode 100755 index 0000000000..436d7caff5 --- /dev/null +++ b/contrib/examples/git-gc.sh @@ -0,0 +1,37 @@ +#!/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 case $# in 0) break ;; esac +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 |