From b2d46199d24856a05f455236031935dd35b3116f Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sun, 3 Jul 2005 13:38:01 -0700 Subject: [PATCH] Add "git repack" command that does an incremental pack --- Makefile | 2 +- git-repack-script | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 git-repack-script diff --git a/Makefile b/Makefile index e86ba6580..2590c8172 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ SCRIPTS=git git-apply-patch-script git-merge-one-file-script git-prune-script \ 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 \ diff --git a/git-repack-script b/git-repack-script new file mode 100644 index 000000000..ce35235b5 --- /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/" -- 2.30.2