-----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