@@ -23,6 +23,27 @@ pack_position () {
23
23
grep " $1 " objects | cut -d" " -f1
24
24
}
25
25
26
+ # test_pack_objects_reused_all <pack-reused> <packs-reused>
27
+ test_pack_objects_reused_all () {
28
+ : > trace2.txt &&
29
+ GIT_TRACE2_EVENT=" $PWD /trace2.txt" \
30
+ git pack-objects --stdout --revs --all --delta-base-offset \
31
+ > /dev/null &&
32
+
33
+ test_pack_reused " $1 " < trace2.txt &&
34
+ test_packs_reused " $2 " < trace2.txt
35
+ }
36
+
37
+ # test_pack_objects_reused <pack-reused> <packs-reused>
38
+ test_pack_objects_reused () {
39
+ : > trace2.txt &&
40
+ GIT_TRACE2_EVENT=" $PWD /trace2.txt" \
41
+ git pack-objects --stdout --revs > /dev/null &&
42
+
43
+ test_pack_reused " $1 " < trace2.txt &&
44
+ test_packs_reused " $2 " < trace2.txt
45
+ }
46
+
26
47
test_expect_success ' preferred pack is reused for single-pack reuse' '
27
48
test_config pack.allowPackReuse single &&
28
49
@@ -34,14 +55,10 @@ test_expect_success 'preferred pack is reused for single-pack reuse' '
34
55
35
56
git multi-pack-index write --bitmap &&
36
57
37
- : >trace2.txt &&
38
- GIT_TRACE2_EVENT="$PWD/trace2.txt" \
39
- git pack-objects --stdout --revs --all >/dev/null &&
40
-
41
- test_pack_reused 3 <trace2.txt &&
42
- test_packs_reused 1 <trace2.txt
58
+ test_pack_objects_reused_all 3 1
43
59
'
44
60
61
+
45
62
test_expect_success ' enable multi-pack reuse' '
46
63
git config pack.allowPackReuse multi
47
64
'
@@ -57,21 +74,11 @@ test_expect_success 'reuse all objects from subset of bitmapped packs' '
57
74
^$(git rev-parse A)
58
75
EOF
59
76
60
- : >trace2.txt &&
61
- GIT_TRACE2_EVENT="$PWD/trace2.txt" \
62
- git pack-objects --stdout --revs <in >/dev/null &&
63
-
64
- test_pack_reused 6 <trace2.txt &&
65
- test_packs_reused 2 <trace2.txt
77
+ test_pack_objects_reused 6 2 <in
66
78
'
67
79
68
80
test_expect_success ' reuse all objects from all packs' '
69
- : >trace2.txt &&
70
- GIT_TRACE2_EVENT="$PWD/trace2.txt" \
71
- git pack-objects --stdout --revs --all >/dev/null &&
72
-
73
- test_pack_reused 9 <trace2.txt &&
74
- test_packs_reused 3 <trace2.txt
81
+ test_pack_objects_reused_all 9 3
75
82
'
76
83
77
84
test_expect_success ' reuse objects from first pack with middle gap' '
@@ -104,12 +111,7 @@ test_expect_success 'reuse objects from first pack with middle gap' '
104
111
^$(git rev-parse D)
105
112
EOF
106
113
107
- : >trace2.txt &&
108
- GIT_TRACE2_EVENT="$PWD/trace2.txt" \
109
- git pack-objects --stdout --delta-base-offset --revs <in >/dev/null &&
110
-
111
- test_pack_reused 3 <trace2.txt &&
112
- test_packs_reused 1 <trace2.txt
114
+ test_pack_objects_reused 3 1 <in
113
115
'
114
116
115
117
test_expect_success ' reuse objects from middle pack with middle gap' '
@@ -125,12 +127,7 @@ test_expect_success 'reuse objects from middle pack with middle gap' '
125
127
^$(git rev-parse D)
126
128
EOF
127
129
128
- : >trace2.txt &&
129
- GIT_TRACE2_EVENT="$PWD/trace2.txt" \
130
- git pack-objects --stdout --delta-base-offset --revs <in >/dev/null &&
131
-
132
- test_pack_reused 3 <trace2.txt &&
133
- test_packs_reused 1 <trace2.txt
130
+ test_pack_objects_reused 3 1 <in
134
131
'
135
132
136
133
test_expect_success ' omit delta with uninteresting base (same pack)' '
@@ -160,10 +157,6 @@ test_expect_success 'omit delta with uninteresting base (same pack)' '
160
157
^$base
161
158
EOF
162
159
163
- : >trace2.txt &&
164
- GIT_TRACE2_EVENT="$PWD/trace2.txt" \
165
- git pack-objects --stdout --delta-base-offset --revs <in >/dev/null &&
166
-
167
160
# We can only reuse the 3 objects corresponding to "other" from
168
161
# the latest pack.
169
162
#
@@ -175,8 +168,7 @@ test_expect_success 'omit delta with uninteresting base (same pack)' '
175
168
# The remaining objects from the other pack are similarly not
176
169
# reused because their objects are on the uninteresting side of
177
170
# the query.
178
- test_pack_reused 3 <trace2.txt &&
179
- test_packs_reused 1 <trace2.txt
171
+ test_pack_objects_reused 3 1 <in
180
172
'
181
173
182
174
test_expect_success ' omit delta from uninteresting base (cross pack)' '
@@ -189,15 +181,10 @@ test_expect_success 'omit delta from uninteresting base (cross pack)' '
189
181
190
182
git multi-pack-index write --bitmap --preferred-pack="pack-$P.idx" &&
191
183
192
- : >trace2.txt &&
193
- GIT_TRACE2_EVENT="$PWD/trace2.txt" \
194
- git pack-objects --stdout --delta-base-offset --all >/dev/null &&
195
-
196
184
packs_nr="$(find $packdir -type f -name "pack-*.pack" | wc -l)" &&
197
185
objects_nr="$(git rev-list --count --all --objects)" &&
198
186
199
- test_pack_reused $(($objects_nr - 1)) <trace2.txt &&
200
- test_packs_reused $packs_nr <trace2.txt
187
+ test_pack_objects_reused_all $(($objects_nr - 1)) $packs_nr
201
188
'
202
189
203
190
test_done
0 commit comments