diff options
Diffstat (limited to 't/perf/p5313-pack-objects.sh')
-rwxr-xr-x | t/perf/p5313-pack-objects.sh | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/t/perf/p5313-pack-objects.sh b/t/perf/p5313-pack-objects.sh new file mode 100755 index 0000000000..46a6cd32d2 --- /dev/null +++ b/t/perf/p5313-pack-objects.sh @@ -0,0 +1,74 @@ +#!/bin/sh + +test_description='Tests pack performance using bitmaps' +. ./perf-lib.sh + +test_perf_large_repo + +test_expect_success 'create rev input' ' + cat >in-thin <<-EOF && + $(git rev-parse HEAD) + ^$(git rev-parse HEAD~1) + EOF + + cat >in-big <<-EOF && + $(git rev-parse HEAD) + ^$(git rev-parse HEAD~1000) + EOF + + cat >in-shallow <<-EOF + $(git rev-parse HEAD) + --shallow $(git rev-parse HEAD) + EOF +' + +test_all_with_args () { + parameter=$1 + export parameter + + test_perf "thin pack with $parameter" ' + git pack-objects --thin --stdout --revs --sparse \ + $parameter <in-thin >out + ' + + test_size "thin pack size with $parameter" ' + test_file_size out + ' + + test_perf "big pack with $parameter" ' + git pack-objects --stdout --revs --sparse \ + $parameter <in-big >out + ' + + test_size "big pack size with $parameter" ' + test_file_size out + ' + + test_perf "shallow fetch pack with $parameter" ' + git pack-objects --stdout --revs --sparse --shallow \ + $parameter <in-shallow >out + ' + + test_size "shallow pack size with $parameter" ' + test_file_size out + ' + + test_perf "repack with $parameter" ' + git repack -adf $parameter + ' + + test_size "repack size with $parameter" ' + gitdir=$(git rev-parse --git-dir) && + pack=$(ls $gitdir/objects/pack/pack-*.pack) && + test_file_size "$pack" + ' +} + +for version in 1 2 +do + test_all_with_args --name-hash-version=$version +done + +test_all_with_args --path-walk + +test_done |