-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This patch adds an option to git-repack-script to repack all objects,
including both packed and unpacked.  This allows a full repack of
a git archive (current cogito packs from 39MB to 4.5MB, and git packs
from 4.4MB to 3.8MB).

Signed-off-by: Frank Sorenson <[EMAIL PROTECTED]>

diff --git a/git-repack-script b/git-repack-script
- --- a/git-repack-script
+++ b/git-repack-script
@@ -5,10 +5,12 @@
 
 . git-sh-setup-script || die "Not a git archive"
        
+repack_all=
 no_update_info=
 while case "$#" in 0) break ;; esac
 do
        case "$1" in
+       --all)  repack_all=t ;;
        -n)     no_update_info=t ;;
        *)      break ;;
        esac
@@ -16,13 +18,22 @@ do
 done
 
 rm -f .tmp-pack-*
- -packname=$(git-rev-list --unpacked --objects $(git-rev-parse --all) |
- -     git-pack-objects --non-empty --incremental .tmp-pack) ||
- -     exit 1
- -if [ -z "$packname" ]; then
- -     echo Nothing new to pack
- -     exit 0
- -fi
+case "$repack_all" in
+t)     packname=$(git-rev-list --objects $(git-rev-parse --all) |
+               git-pack-objects .tmp-pack) ||
+               exit 1
+       find "$GIT_OBJECT_DIRECTORY/"?? -type f | xargs rm -f
+       find "$GIT_OBJECT_DIRECTORY/pack" -type f | xargs rm -f
+       ;;
+*)     packname=$(git-rev-list --unpacked --objects $(git-rev-parse --all) |
+               git-pack-objects --non-empty --incremental .tmp-pack) ||
+               exit 1
+       if [ -z "$packname" ]; then
+               echo Nothing new to pack
+               exit 0
+       fi
+       ;;
+esac
 
 mkdir -p "$GIT_OBJECT_DIRECTORY/pack" &&
 mv .tmp-pack-$packname.pack "$GIT_OBJECT_DIRECTORY/pack/pack-$packname.pack" &&


Frank
- -- 
Frank Sorenson - KD7TZK
Systems Manager, Computer Science Department
Brigham Young University
[EMAIL PROTECTED]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDECcnaI0dwg4A47wRAsigAKDEItbKTKAeO+PO8VV0dtMvFl0qfgCffyDc
hL0nAUB0HxeDlDoh9fv2m4o=
=r4gM
-----END PGP SIGNATURE-----
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to