From: Linus Torvalds Date: Thu, 13 Oct 2005 22:38:29 +0000 (-0700) Subject: Add "-l" flag for repacking only local packs X-Git-Tag: v0.99.9~131 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f7aac2eac96b637755c89c2405a41749c8f6033a;p=git.git 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 Signed-off-by: Junio C Hamano --- 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