summaryrefslogtreecommitdiff
path: root/git-repack.sh
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 /git-repack.sh
parent64560374cc6c3ebe595540f3425b2b38036cf253 (diff)
downloadgit-f7aac2eac96b637755c89c2405a41749c8f6033a.tar.gz
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>
Diffstat (limited to 'git-repack.sh')
-rwxr-xr-xgit-repack.sh6
1 files changed, 5 insertions, 1 deletions
diff --git a/git-repack.sh b/git-repack.sh
index b395d0ef34..49547a77c7 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