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