summaryrefslogtreecommitdiff
path: root/git-repack-script
diff options
context:
space:
mode:
Diffstat (limited to 'git-repack-script')
-rw-r--r--git-repack-script18
1 files changed, 18 insertions, 0 deletions
diff --git a/git-repack-script b/git-repack-script
new file mode 100644
index 0000000..ce35235
--- /dev/null
+++ b/git-repack-script
@@ -0,0 +1,18 @@
+#!/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/"