Add --max-pack-size parsing and usage messages. Upgrade git-repack.sh to handle multiple packfile names. Signed-off-by: Dana L. How <danahow@xxxxxxxxx> --- builtin-pack-objects.c | 10 +++++++++- git-repack.sh | 12 +++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 328b3cb..ed958d6 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -15,7 +15,7 @@ #include "progress.h" static const char pack_usage[] = "\ -git-pack-objects [{ -q | --progress | --all-progress }] \n\ +git-pack-objects [{ -q | --progress | --all-progress }] [--max-pack-size=N] \n\ [--local] [--incremental] [--window=N] [--depth=N] \n\ [--no-reuse-delta] [--delta-base-offset] [--non-empty] \n\ [--revs [--unpacked | --all]*] [--reflog] [--stdout | base-name] \n\ @@ -1766,6 +1766,14 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) incremental = 1; continue; } + if (!prefixcmp(arg, "--max-pack-size=")) { + char *end; + pack_size_limit = strtoul(arg+16, &end, 0) * 1024 * 1024; + if (!arg[16] || *end) + usage(pack_usage); + no_reuse_delta = 1; + continue; + } if (!prefixcmp(arg, "--window=")) { char *end; window = strtoul(arg+9, &end, 0); diff --git a/git-repack.sh b/git-repack.sh index ddfa8b4..ebce1b3 100755 --- a/git-repack.sh +++ b/git-repack.sh @@ -3,7 +3,7 @@ # Copyright (c) 2005 Linus Torvalds # -USAGE='[-a] [-d] [-f] [-l] [-n] [-q] [--window=N] [--depth=N]' +USAGE='[-a] [-d] [-f] [-l] [-n] [-q] [--max-pack-size=N] [--window=N] [--depth=N]' SUBDIRECTORY_OK='Yes' . git-sh-setup @@ -18,6 +18,7 @@ do -q) quiet=-q ;; -f) no_reuse_delta=--no-reuse-delta ;; -l) local=--local ;; + --max-pack-size=*) extra="$extra $1" ;; --window=*) extra="$extra $1" ;; --depth=*) extra="$extra $1" ;; *) usage ;; @@ -62,11 +63,12 @@ case ",$all_into_one," in esac args="$args $local $quiet $no_reuse_delta$extra" -name=$(git-pack-objects --non-empty --all --reflog $args </dev/null "$PACKTMP") || +names=$(git-pack-objects --non-empty --all --reflog $args </dev/null "$PACKTMP") || exit 1 -if [ -z "$name" ]; then +if [ -z "$names" ]; then echo Nothing new to pack. -else +fi +for name in $names ; do chmod a-w "$PACKTMP-$name.pack" chmod a-w "$PACKTMP-$name.idx" if test "$quiet" != '-q'; then @@ -92,7 +94,7 @@ else exit 1 } rm -f "$PACKDIR/old-pack-$name.pack" "$PACKDIR/old-pack-$name.idx" -fi +done if test "$remove_redundant" = t then -- 1.5.2.rc0.766.gba60-dirty - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html