summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2017-11-20 15:27:19 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-11-21 11:07:28 +0900
commit0a11e40275b445fcc959a0dc05f8d73a5a9cbf36 (patch)
tree3d9194bbdfc7d0768fc967f2b3a3f4a656fc661a
parentp5550: factor out nonsense-pack creation (diff)
downloadtgif-0a11e40275b445fcc959a0dc05f8d73a5a9cbf36.tar.xz
t/perf/lib-pack: use fast-import checkpoint to create packs
We currently use fast-import only to create a large number of objects, and then run O(n) invocations of pack-objects to turn them into packs. We can do this faster by just asking fast-import to checkpoint and create a pack for each (after telling it not to turn loose tiny packs). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--t/perf/lib-pack.sh10
1 files changed, 3 insertions, 7 deletions
diff --git a/t/perf/lib-pack.sh b/t/perf/lib-pack.sh
index 501bb7b272..d3865db286 100644
--- a/t/perf/lib-pack.sh
+++ b/t/perf/lib-pack.sh
@@ -9,15 +9,10 @@ create_packs () {
print "data <<EOF";
print "$_";
print "EOF";
+ print "checkpoint"
}
' "$@" |
- git fast-import &&
-
- git cat-file --batch-all-objects --batch-check='%(objectname)' |
- while read sha1
- do
- echo $sha1 | git pack-objects .git/objects/pack/pack
- done
+ git fast-import
}
# create a large number of packs, disabling any gc which might
@@ -25,5 +20,6 @@ create_packs () {
setup_many_packs () {
git config gc.auto 0 &&
git config gc.autopacklimit 0 &&
+ git config fastimport.unpacklimit 0 &&
create_packs 500
}