git-fetch-script git-status-script git-commit-script \
git-log-script git-shortlog git-cvsimport-script git-diff-script \
git-reset-script git-add-script git-checkout-script git-clone-script \
- gitk git-cherry git-rebase-script git-relink-script
+ gitk git-cherry git-rebase-script git-relink-script git-repack-script
PROG= git-update-cache git-diff-files git-init-db git-write-tree \
git-read-tree git-commit-tree git-cat-file git-fsck-cache \
--- /dev/null
+#!/bin/sh
+: ${GIT_DIR=.git}
+: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
+packname=$(date +"pack-%s")
+if [ -f "$GIT_OBJECT_DIRECTORY/pack/$packname.idx" ]; then
+ echo Pack $packname already exists
+ exit 1
+fi
+rm -f $packname.idx $packname.pack
+git-rev-list --unpacked --objects $(git-rev-parse --all) |
+ git-pack-objects --non-empty --incremental $packname ||
+ exit 1
+
+if [ ! -f $packname.idx ]; then
+ echo Nothing new to pack
+ exit 0
+fi
+mv $packname.idx $packname.pack "$GIT_OBJECT_DIRECTORY/pack/"