aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@osdl.org>2005-10-13 15:38:29 -0700
committerJunio C Hamano <junkio@cox.net>2005-10-13 15:38:29 -0700
commitf7aac2eac96b637755c89c2405a41749c8f6033a (patch)
tree7160a82c0b0b3a2fd1db6475cdb7e1c760046949
parent64560374cc6c3ebe595540f3425b2b38036cf253 (diff)
downloadgit-f7aac2eac96b637755c89c2405a41749c8f6033a.tar.gz
git-f7aac2eac96b637755c89c2405a41749c8f6033a.tar.xz
Add "-l" flag for repacking only local packs
This uses the new "--local" flag to git-pack-objects. It currently only makes a difference together with "-a", since a normal incremental repack won't pack any packed objects at all (whether local or remote). Eventually, it might end up skipping any objects that aren't local to the current object directory, but for now it only knows to skip packed objects. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-xgit-repack.sh6
1 files changed, 5 insertions, 1 deletions
diff --git a/git-repack.sh b/git-repack.sh
index b395d0ef3..49547a77c 100755
--- a/git-repack.sh
+++ b/git-repack.sh
@@ -5,13 +5,14 @@
. git-sh-setup || die "Not a git archive"
-no_update_info= all_into_one= remove_redundant=
+no_update_info= all_into_one= remove_redundant= local=
while case "$#" in 0) break ;; esac
do
case "$1" in
-n) no_update_info=t ;;
-a) all_into_one=t ;;
-d) remove_redandant=t ;;
+ -l) local=t ;;
*) break ;;
esac
shift
@@ -37,6 +38,9 @@ case ",$all_into_one," in
find . -type f \( -name '*.pack' -o -name '*.idx' \) -print`
;;
esac
+if [ "$local" ]; then
+ pack_objects="$pack_objects --local"
+fi
name=$(git-rev-list --objects $rev_list $(git-rev-parse $rev_parse) |
git-pack-objects --non-empty $pack_objects .tmp-pack) ||
exit 1