summaryrefslogtreecommitdiff
path: root/git-repack.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-10-03 10:05:32 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-10-03 10:05:32 (GMT)
commit0341091a9ec47576a2fdfab181145fa94c04b810 (patch)
treec58af279d72fb1850af97136b6868049644bfe81 /git-repack.sh
parente56f6359ffd22176c2a31d4d7484b9a5880f885b (diff)
parent17815501a8f95c080891acd9537514adfe17c80e (diff)
downloadgit-0341091a9ec47576a2fdfab181145fa94c04b810.zip
git-0341091a9ec47576a2fdfab181145fa94c04b810.tar.gz
git-0341091a9ec47576a2fdfab181145fa94c04b810.tar.bz2
Merge branch 'jc/autogc'
* jc/autogc: git-gc --auto: run "repack -A -d -l" as necessary. git-gc --auto: restructure the way "repack" command line is built. git-gc --auto: protect ourselves from accumulated cruft git-gc --auto: add documentation. git-gc --auto: move threshold check to need_to_gc() function. repack -A -d: use --keep-unreachable when repacking pack-objects --keep-unreachable Export matches_pack_name() and fix its return value Invoke "git gc --auto" from commit, merge, am and rebase. Implement git gc --auto
Diffstat (limited to 'git-repack.sh')
-rwxr-xr-xgit-repack.sh14
1 files changed, 11 insertions, 3 deletions
diff --git a/git-repack.sh b/git-repack.sh
index 0aae1a3..e72adc4 100755
--- a/git-repack.sh
+++ b/git-repack.sh
@@ -3,17 +3,19 @@
# Copyright (c) 2005 Linus Torvalds
#
-USAGE='[-a] [-d] [-f] [-l] [-n] [-q] [--max-pack-size=N] [--window=N] [--window-memory=N] [--depth=N]'
+USAGE='[-a|-A] [-d] [-f] [-l] [-n] [-q] [--max-pack-size=N] [--window=N] [--window-memory=N] [--depth=N]'
SUBDIRECTORY_OK='Yes'
. git-sh-setup
-no_update_info= all_into_one= remove_redundant=
+no_update_info= all_into_one= remove_redundant= keep_unreachable=
local= quiet= no_reuse= extra=
while test $# != 0
do
case "$1" in
-n) no_update_info=t ;;
-a) all_into_one=t ;;
+ -A) all_into_one=t
+ keep_unreachable=--keep-unreachable ;;
-d) remove_redundant=t ;;
-q) quiet=-q ;;
-f) no_reuse=--no-reuse-object ;;
@@ -59,7 +61,13 @@ case ",$all_into_one," in
fi
done
fi
- [ -z "$args" ] && args='--unpacked --incremental'
+ if test -z "$args"
+ then
+ args='--unpacked --incremental'
+ elif test -n "$keep_unreachable"
+ then
+ args="$args $keep_unreachable"
+ fi
;;
esac