git-gc.shon commit git-svn: gracefully handle --follow-parent failures (c7eba71)
   1#!/bin/sh
   2#
   3# Copyright (c) 2006, Shawn O. Pearce
   4#
   5# Cleanup unreachable files and optimize the repository.
   6
   7USAGE='git-gc [--prune]'
   8SUBDIRECTORY_OK=Yes
   9. git-sh-setup
  10
  11no_prune=:
  12while case $# in 0) break ;; esac
  13do
  14        case "$1" in
  15        --prune)
  16                no_prune=
  17                ;;
  18        --)
  19                usage
  20                ;;
  21        esac
  22        shift
  23done
  24
  25case "$(git config --get gc.packrefs)" in
  26notbare|"")
  27        test $(is_bare_repository) = true || pack_refs=true;;
  28*)
  29        pack_refs=$(git config --bool --get gc.packrefs)
  30esac
  31
  32test "true" != "$pack_refs" ||
  33git-pack-refs --prune &&
  34git-reflog expire --all &&
  35git-repack -a -d -l &&
  36$no_prune git-prune &&
  37git-rerere gc || exit