Add "-l" flag for repacking only local packs
authorLinus Torvalds <torvalds@osdl.org>
Thu, 13 Oct 2005 22:38:29 +0000 (15:38 -0700)
committerJunio C Hamano <junkio@cox.net>
Thu, 13 Oct 2005 22:38:29 +0000 (15:38 -0700)
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>
git-repack.sh

index b395d0e..49547a7 100755 (executable)
@@ -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