X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git-repack-script;h=15b7fd6a15de3a3a5df6a7408f65410c37c0589e;hb=fb2af0375bcef9f5f5cbb1f4dc9f81459ce1f4b1;hp=ce35235b521b0802726bf0a9a69df131cfaecb7f;hpb=b2d46199d24856a05f455236031935dd35b3116f;p=git.git diff --git a/git-repack-script b/git-repack-script old mode 100644 new mode 100755 index ce35235b..15b7fd6a --- a/git-repack-script +++ b/git-repack-script @@ -1,18 +1,14 @@ #!/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 +. git-sh-setup-script || die "Not a git archive" + +rm -f .tmp-pack-* +packname=$(git-rev-list --unpacked --objects $(git-rev-parse --all) | + git-pack-objects --non-empty --incremental .tmp-pack) || 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 +if [ -z "$packname" ]; then echo Nothing new to pack exit 0 fi -mv $packname.idx $packname.pack "$GIT_OBJECT_DIRECTORY/pack/" +mkdir -p "$GIT_OBJECT_DIRECTORY/pack" && +mv .tmp-pack-$packname.pack "$GIT_OBJECT_DIRECTORY/pack/pack-$packname.pack" && +mv .tmp-pack-$packname.idx "$GIT_OBJECT_DIRECTORY/pack/pack-$packname.idx"