Git fork
1#!/bin/sh
2
3test_description='Tests pack performance using bitmaps'
4. ./perf-lib.sh
5
6test_perf_large_repo
7
8test_expect_success 'create rev input' '
9 cat >in-thin <<-EOF &&
10 $(git rev-parse HEAD)
11 ^$(git rev-parse HEAD~1)
12 EOF
13
14 cat >in-big <<-EOF &&
15 $(git rev-parse HEAD)
16 ^$(git rev-parse HEAD~1000)
17 EOF
18
19 cat >in-shallow <<-EOF
20 $(git rev-parse HEAD)
21 --shallow $(git rev-parse HEAD)
22 EOF
23'
24
25test_all_with_args () {
26 parameter=$1
27 export parameter
28
29 test_perf "thin pack with $parameter" '
30 git pack-objects --thin --stdout --revs --sparse \
31 $parameter <in-thin >out
32 '
33
34 test_size "thin pack size with $parameter" '
35 test_file_size out
36 '
37
38 test_perf "big pack with $parameter" '
39 git pack-objects --stdout --revs --sparse \
40 $parameter <in-big >out
41 '
42
43 test_size "big pack size with $parameter" '
44 test_file_size out
45 '
46
47 test_perf "shallow fetch pack with $parameter" '
48 git pack-objects --stdout --revs --sparse --shallow \
49 $parameter <in-shallow >out
50 '
51
52 test_size "shallow pack size with $parameter" '
53 test_file_size out
54 '
55
56 test_perf "repack with $parameter" '
57 git repack -adf $parameter
58 '
59
60 test_size "repack size with $parameter" '
61 gitdir=$(git rev-parse --git-dir) &&
62 pack=$(ls $gitdir/objects/pack/pack-*.pack) &&
63 test_file_size "$pack"
64 '
65}
66
67for version in 1 2
68do
69 test_all_with_args --name-hash-version=$version
70done
71
72test_all_with_args --path-walk
73
74test_done