]>
Commit | Line | Data |
---|---|---|
9535ce73 JH |
1 | #!/bin/sh |
2 | ||
3 | test_description='git pack-objects using object filtering' | |
4 | ||
966b4be2 | 5 | GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main |
334afbc7 JS |
6 | export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME |
7 | ||
b2e5d75d | 8 | TEST_PASSES_SANITIZE_LEAK=true |
9535ce73 JH |
9 | . ./test-lib.sh |
10 | ||
11 | # Test blob:none filter. | |
12 | ||
13 | test_expect_success 'setup r1' ' | |
9535ce73 JH |
14 | git init r1 && |
15 | for n in 1 2 3 4 5 | |
16 | do | |
74d2f569 ES |
17 | echo "This is file: $n" > r1/file.$n && |
18 | git -C r1 add file.$n && | |
d0fd9931 | 19 | git -C r1 commit -m "$n" || return 1 |
9535ce73 JH |
20 | done |
21 | ' | |
22 | ||
fb2d0db5 NS |
23 | parse_verify_pack_blob_oid () { |
24 | awk '{print $1}' - | |
25 | } | |
26 | ||
9535ce73 | 27 | test_expect_success 'verify blob count in normal packfile' ' |
3f75a6e5 RS |
28 | git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 \ |
29 | >ls_files_result && | |
30 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
31 | sort >expected && |
32 | ||
effc2bae | 33 | git -C r1 pack-objects --revs --stdout >all.pack <<-EOF && |
9535ce73 JH |
34 | HEAD |
35 | EOF | |
36 | git -C r1 index-pack ../all.pack && | |
bdbc17e8 | 37 | |
61de0ff6 MD |
38 | git -C r1 verify-pack -v ../all.pack >verify_result && |
39 | grep blob verify_result | | |
fb2d0db5 | 40 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
41 | sort >observed && |
42 | ||
dcbaa0b3 | 43 | test_cmp expected observed |
9535ce73 JH |
44 | ' |
45 | ||
46 | test_expect_success 'verify blob:none packfile has no blobs' ' | |
effc2bae | 47 | git -C r1 pack-objects --revs --stdout --filter=blob:none >filter.pack <<-EOF && |
9535ce73 JH |
48 | HEAD |
49 | EOF | |
50 | git -C r1 index-pack ../filter.pack && | |
bdbc17e8 | 51 | |
61de0ff6 | 52 | git -C r1 verify-pack -v ../filter.pack >verify_result && |
a29b2429 | 53 | ! grep blob verify_result |
9535ce73 JH |
54 | ' |
55 | ||
6cfcabfb CC |
56 | test_expect_success 'verify blob:none packfile without --stdout' ' |
57 | git -C r1 pack-objects --revs --filter=blob:none mypackname >packhash <<-EOF && | |
58 | HEAD | |
59 | EOF | |
60 | git -C r1 verify-pack -v "mypackname-$(cat packhash).pack" >verify_result && | |
61 | ! grep blob verify_result | |
62 | ' | |
63 | ||
9535ce73 | 64 | test_expect_success 'verify normal and blob:none packfiles have same commits/trees' ' |
61de0ff6 MD |
65 | git -C r1 verify-pack -v ../all.pack >verify_result && |
66 | grep -E "commit|tree" verify_result | | |
fb2d0db5 | 67 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
68 | sort >expected && |
69 | ||
61de0ff6 MD |
70 | git -C r1 verify-pack -v ../filter.pack >verify_result && |
71 | grep -E "commit|tree" verify_result | | |
fb2d0db5 | 72 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
73 | sort >observed && |
74 | ||
dcbaa0b3 | 75 | test_cmp expected observed |
9535ce73 JH |
76 | ' |
77 | ||
7c0fe330 MD |
78 | test_expect_success 'get an error for missing tree object' ' |
79 | git init r5 && | |
80 | echo foo >r5/foo && | |
81 | git -C r5 add foo && | |
82 | git -C r5 commit -m "foo" && | |
6c37f3ec DL |
83 | git -C r5 rev-parse HEAD^{tree} >tree && |
84 | del=$(sed "s|..|&/|" tree) && | |
7c0fe330 | 85 | rm r5/.git/objects/$del && |
effc2bae | 86 | test_must_fail git -C r5 pack-objects --revs --stdout 2>bad_tree <<-EOF && |
7c0fe330 MD |
87 | HEAD |
88 | EOF | |
d9e6d094 | 89 | grep "bad tree object" bad_tree |
7c0fe330 MD |
90 | ' |
91 | ||
bc5975d2 MD |
92 | test_expect_success 'setup for tests of tree:0' ' |
93 | mkdir r1/subtree && | |
94 | echo "This is a file in a subtree" >r1/subtree/file && | |
95 | git -C r1 add subtree/file && | |
96 | git -C r1 commit -m subtree | |
97 | ' | |
98 | ||
99 | test_expect_success 'verify tree:0 packfile has no blobs or trees' ' | |
effc2bae | 100 | git -C r1 pack-objects --revs --stdout --filter=tree:0 >commitsonly.pack <<-EOF && |
bc5975d2 MD |
101 | HEAD |
102 | EOF | |
103 | git -C r1 index-pack ../commitsonly.pack && | |
104 | git -C r1 verify-pack -v ../commitsonly.pack >objs && | |
105 | ! grep -E "tree|blob" objs | |
106 | ' | |
107 | ||
108 | test_expect_success 'grab tree directly when using tree:0' ' | |
109 | # We should get the tree specified directly but not its blobs or subtrees. | |
effc2bae | 110 | git -C r1 pack-objects --revs --stdout --filter=tree:0 >commitsonly.pack <<-EOF && |
bc5975d2 MD |
111 | HEAD: |
112 | EOF | |
113 | git -C r1 index-pack ../commitsonly.pack && | |
114 | git -C r1 verify-pack -v ../commitsonly.pack >objs && | |
115 | awk "/tree|blob/{print \$1}" objs >trees_and_blobs && | |
116 | git -C r1 rev-parse HEAD: >expected && | |
117 | test_cmp expected trees_and_blobs | |
118 | ' | |
119 | ||
9535ce73 JH |
120 | # Test blob:limit=<n>[kmg] filter. |
121 | # We boundary test around the size parameter. The filter is strictly less than | |
122 | # the value, so size 500 and 1000 should have the same results, but 1001 should | |
123 | # filter more. | |
124 | ||
125 | test_expect_success 'setup r2' ' | |
126 | git init r2 && | |
127 | for n in 1000 10000 | |
128 | do | |
74d2f569 ES |
129 | printf "%"$n"s" X > r2/large.$n && |
130 | git -C r2 add large.$n && | |
d0fd9931 | 131 | git -C r2 commit -m "$n" || return 1 |
9535ce73 JH |
132 | done |
133 | ' | |
134 | ||
135 | test_expect_success 'verify blob count in normal packfile' ' | |
3f75a6e5 RS |
136 | git -C r2 ls-files -s large.1000 large.10000 >ls_files_result && |
137 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
138 | sort >expected && |
139 | ||
effc2bae | 140 | git -C r2 pack-objects --revs --stdout >all.pack <<-EOF && |
9535ce73 JH |
141 | HEAD |
142 | EOF | |
143 | git -C r2 index-pack ../all.pack && | |
bdbc17e8 | 144 | |
61de0ff6 MD |
145 | git -C r2 verify-pack -v ../all.pack >verify_result && |
146 | grep blob verify_result | | |
fb2d0db5 | 147 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
148 | sort >observed && |
149 | ||
dcbaa0b3 | 150 | test_cmp expected observed |
9535ce73 JH |
151 | ' |
152 | ||
153 | test_expect_success 'verify blob:limit=500 omits all blobs' ' | |
effc2bae | 154 | git -C r2 pack-objects --revs --stdout --filter=blob:limit=500 >filter.pack <<-EOF && |
9535ce73 JH |
155 | HEAD |
156 | EOF | |
157 | git -C r2 index-pack ../filter.pack && | |
bdbc17e8 | 158 | |
61de0ff6 | 159 | git -C r2 verify-pack -v ../filter.pack >verify_result && |
a29b2429 | 160 | ! grep blob verify_result |
9535ce73 JH |
161 | ' |
162 | ||
163 | test_expect_success 'verify blob:limit=1000' ' | |
effc2bae | 164 | git -C r2 pack-objects --revs --stdout --filter=blob:limit=1000 >filter.pack <<-EOF && |
9535ce73 JH |
165 | HEAD |
166 | EOF | |
167 | git -C r2 index-pack ../filter.pack && | |
bdbc17e8 | 168 | |
61de0ff6 | 169 | git -C r2 verify-pack -v ../filter.pack >verify_result && |
a29b2429 | 170 | ! grep blob verify_result |
9535ce73 JH |
171 | ' |
172 | ||
173 | test_expect_success 'verify blob:limit=1001' ' | |
3f75a6e5 RS |
174 | git -C r2 ls-files -s large.1000 >ls_files_result && |
175 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
176 | sort >expected && |
177 | ||
effc2bae | 178 | git -C r2 pack-objects --revs --stdout --filter=blob:limit=1001 >filter.pack <<-EOF && |
9535ce73 JH |
179 | HEAD |
180 | EOF | |
181 | git -C r2 index-pack ../filter.pack && | |
bdbc17e8 | 182 | |
61de0ff6 MD |
183 | git -C r2 verify-pack -v ../filter.pack >verify_result && |
184 | grep blob verify_result | | |
fb2d0db5 | 185 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
186 | sort >observed && |
187 | ||
dcbaa0b3 | 188 | test_cmp expected observed |
9535ce73 JH |
189 | ' |
190 | ||
191 | test_expect_success 'verify blob:limit=10001' ' | |
3f75a6e5 RS |
192 | git -C r2 ls-files -s large.1000 large.10000 >ls_files_result && |
193 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
194 | sort >expected && |
195 | ||
effc2bae | 196 | git -C r2 pack-objects --revs --stdout --filter=blob:limit=10001 >filter.pack <<-EOF && |
9535ce73 JH |
197 | HEAD |
198 | EOF | |
199 | git -C r2 index-pack ../filter.pack && | |
bdbc17e8 | 200 | |
61de0ff6 MD |
201 | git -C r2 verify-pack -v ../filter.pack >verify_result && |
202 | grep blob verify_result | | |
fb2d0db5 | 203 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
204 | sort >observed && |
205 | ||
dcbaa0b3 | 206 | test_cmp expected observed |
9535ce73 JH |
207 | ' |
208 | ||
209 | test_expect_success 'verify blob:limit=1k' ' | |
3f75a6e5 RS |
210 | git -C r2 ls-files -s large.1000 >ls_files_result && |
211 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
212 | sort >expected && |
213 | ||
effc2bae | 214 | git -C r2 pack-objects --revs --stdout --filter=blob:limit=1k >filter.pack <<-EOF && |
9535ce73 JH |
215 | HEAD |
216 | EOF | |
217 | git -C r2 index-pack ../filter.pack && | |
bdbc17e8 | 218 | |
61de0ff6 MD |
219 | git -C r2 verify-pack -v ../filter.pack >verify_result && |
220 | grep blob verify_result | | |
fb2d0db5 | 221 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
222 | sort >observed && |
223 | ||
dcbaa0b3 | 224 | test_cmp expected observed |
a0c9016a JT |
225 | ' |
226 | ||
227 | test_expect_success 'verify explicitly specifying oversized blob in input' ' | |
3f75a6e5 RS |
228 | git -C r2 ls-files -s large.1000 large.10000 >ls_files_result && |
229 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
230 | sort >expected && |
231 | ||
6c37f3ec DL |
232 | echo HEAD >objects && |
233 | git -C r2 rev-parse HEAD:large.10000 >>objects && | |
234 | git -C r2 pack-objects --revs --stdout --filter=blob:limit=1k <objects >filter.pack && | |
a0c9016a | 235 | git -C r2 index-pack ../filter.pack && |
bdbc17e8 | 236 | |
61de0ff6 MD |
237 | git -C r2 verify-pack -v ../filter.pack >verify_result && |
238 | grep blob verify_result | | |
fb2d0db5 | 239 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
240 | sort >observed && |
241 | ||
dcbaa0b3 | 242 | test_cmp expected observed |
9535ce73 JH |
243 | ' |
244 | ||
245 | test_expect_success 'verify blob:limit=1m' ' | |
3f75a6e5 RS |
246 | git -C r2 ls-files -s large.1000 large.10000 >ls_files_result && |
247 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
248 | sort >expected && |
249 | ||
effc2bae | 250 | git -C r2 pack-objects --revs --stdout --filter=blob:limit=1m >filter.pack <<-EOF && |
9535ce73 JH |
251 | HEAD |
252 | EOF | |
253 | git -C r2 index-pack ../filter.pack && | |
bdbc17e8 | 254 | |
61de0ff6 MD |
255 | git -C r2 verify-pack -v ../filter.pack >verify_result && |
256 | grep blob verify_result | | |
fb2d0db5 | 257 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
258 | sort >observed && |
259 | ||
dcbaa0b3 | 260 | test_cmp expected observed |
9535ce73 JH |
261 | ' |
262 | ||
263 | test_expect_success 'verify normal and blob:limit packfiles have same commits/trees' ' | |
61de0ff6 MD |
264 | git -C r2 verify-pack -v ../all.pack >verify_result && |
265 | grep -E "commit|tree" verify_result | | |
fb2d0db5 | 266 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
267 | sort >expected && |
268 | ||
61de0ff6 MD |
269 | git -C r2 verify-pack -v ../filter.pack >verify_result && |
270 | grep -E "commit|tree" verify_result | | |
fb2d0db5 | 271 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
272 | sort >observed && |
273 | ||
dcbaa0b3 | 274 | test_cmp expected observed |
9535ce73 JH |
275 | ' |
276 | ||
825babe5 | 277 | test_expect_success 'verify small limit and big limit results in small limit' ' |
f00d8115 RS |
278 | git -C r2 ls-files -s large.1000 >ls_files_result && |
279 | test_parse_ls_files_stage_oids <ls_files_result | | |
280 | sort >expected && | |
281 | ||
282 | git -C r2 pack-objects --revs --stdout --filter=blob:limit=1001 \ | |
283 | --filter=blob:limit=10001 >filter.pack <<-EOF && | |
284 | HEAD | |
285 | EOF | |
286 | git -C r2 index-pack ../filter.pack && | |
287 | ||
288 | git -C r2 verify-pack -v ../filter.pack >verify_result && | |
289 | grep blob verify_result | | |
290 | parse_verify_pack_blob_oid | | |
291 | sort >observed && | |
292 | ||
293 | test_cmp expected observed | |
294 | ' | |
295 | ||
296 | test_expect_success 'verify big limit and small limit results in small limit' ' | |
297 | git -C r2 ls-files -s large.1000 >ls_files_result && | |
298 | test_parse_ls_files_stage_oids <ls_files_result | | |
299 | sort >expected && | |
300 | ||
301 | git -C r2 pack-objects --revs --stdout --filter=blob:limit=10001 \ | |
302 | --filter=blob:limit=1001 >filter.pack <<-EOF && | |
303 | HEAD | |
304 | EOF | |
305 | git -C r2 index-pack ../filter.pack && | |
306 | ||
307 | git -C r2 verify-pack -v ../filter.pack >verify_result && | |
308 | grep blob verify_result | | |
309 | parse_verify_pack_blob_oid | | |
310 | sort >observed && | |
311 | ||
312 | test_cmp expected observed | |
313 | ' | |
314 | ||
9535ce73 | 315 | # Test sparse:path=<path> filter. |
e693237e CC |
316 | # !!!! |
317 | # NOTE: sparse:path filter support has been dropped for security reasons, | |
318 | # so the tests have been changed to make sure that using it fails. | |
319 | # !!!! | |
9535ce73 JH |
320 | # Use a local file containing a sparse-checkout specification to filter |
321 | # out blobs not required for the corresponding sparse-checkout. We do not | |
322 | # require sparse-checkout to actually be enabled. | |
323 | ||
324 | test_expect_success 'setup r3' ' | |
325 | git init r3 && | |
326 | mkdir r3/dir1 && | |
327 | for n in sparse1 sparse2 | |
328 | do | |
74d2f569 ES |
329 | echo "This is file: $n" > r3/$n && |
330 | git -C r3 add $n && | |
331 | echo "This is file: dir1/$n" > r3/dir1/$n && | |
d0fd9931 | 332 | git -C r3 add dir1/$n || return 1 |
9535ce73 JH |
333 | done && |
334 | git -C r3 commit -m "sparse" && | |
335 | echo dir1/ >pattern1 && | |
336 | echo sparse1 >pattern2 | |
337 | ' | |
338 | ||
339 | test_expect_success 'verify blob count in normal packfile' ' | |
3f75a6e5 RS |
340 | git -C r3 ls-files -s sparse1 sparse2 dir1/sparse1 dir1/sparse2 \ |
341 | >ls_files_result && | |
342 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
343 | sort >expected && |
344 | ||
effc2bae | 345 | git -C r3 pack-objects --revs --stdout >all.pack <<-EOF && |
9535ce73 JH |
346 | HEAD |
347 | EOF | |
348 | git -C r3 index-pack ../all.pack && | |
bdbc17e8 | 349 | |
61de0ff6 MD |
350 | git -C r3 verify-pack -v ../all.pack >verify_result && |
351 | grep blob verify_result | | |
fb2d0db5 | 352 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
353 | sort >observed && |
354 | ||
dcbaa0b3 | 355 | test_cmp expected observed |
9535ce73 JH |
356 | ' |
357 | ||
e693237e CC |
358 | test_expect_success 'verify sparse:path=pattern1 fails' ' |
359 | test_must_fail git -C r3 pack-objects --revs --stdout \ | |
360 | --filter=sparse:path=../pattern1 <<-EOF | |
9535ce73 JH |
361 | HEAD |
362 | EOF | |
9535ce73 JH |
363 | ' |
364 | ||
e693237e CC |
365 | test_expect_success 'verify sparse:path=pattern2 fails' ' |
366 | test_must_fail git -C r3 pack-objects --revs --stdout \ | |
367 | --filter=sparse:path=../pattern2 <<-EOF | |
9535ce73 JH |
368 | HEAD |
369 | EOF | |
9535ce73 JH |
370 | ' |
371 | ||
372 | # Test sparse:oid=<oid-ish> filter. | |
e693237e CC |
373 | # Use a blob containing a sparse-checkout specification to filter |
374 | # out blobs not required for the corresponding sparse-checkout. We do not | |
375 | # require sparse-checkout to actually be enabled. | |
9535ce73 JH |
376 | |
377 | test_expect_success 'setup r4' ' | |
378 | git init r4 && | |
379 | mkdir r4/dir1 && | |
380 | for n in sparse1 sparse2 | |
381 | do | |
74d2f569 ES |
382 | echo "This is file: $n" > r4/$n && |
383 | git -C r4 add $n && | |
384 | echo "This is file: dir1/$n" > r4/dir1/$n && | |
d0fd9931 | 385 | git -C r4 add dir1/$n || return 1 |
9535ce73 JH |
386 | done && |
387 | echo dir1/ >r4/pattern && | |
388 | git -C r4 add pattern && | |
389 | git -C r4 commit -m "pattern" | |
390 | ' | |
391 | ||
392 | test_expect_success 'verify blob count in normal packfile' ' | |
3f75a6e5 RS |
393 | git -C r4 ls-files -s pattern sparse1 sparse2 dir1/sparse1 dir1/sparse2 \ |
394 | >ls_files_result && | |
395 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
396 | sort >expected && |
397 | ||
effc2bae | 398 | git -C r4 pack-objects --revs --stdout >all.pack <<-EOF && |
9535ce73 JH |
399 | HEAD |
400 | EOF | |
401 | git -C r4 index-pack ../all.pack && | |
bdbc17e8 | 402 | |
61de0ff6 MD |
403 | git -C r4 verify-pack -v ../all.pack >verify_result && |
404 | grep blob verify_result | | |
fb2d0db5 | 405 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
406 | sort >observed && |
407 | ||
dcbaa0b3 | 408 | test_cmp expected observed |
9535ce73 JH |
409 | ' |
410 | ||
411 | test_expect_success 'verify sparse:oid=OID' ' | |
3f75a6e5 RS |
412 | git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 >ls_files_result && |
413 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
414 | sort >expected && |
415 | ||
6c37f3ec | 416 | git -C r4 ls-files -s pattern >staged && |
fb2d0db5 | 417 | oid=$(test_parse_ls_files_stage_oids <staged) && |
effc2bae | 418 | git -C r4 pack-objects --revs --stdout --filter=sparse:oid=$oid >filter.pack <<-EOF && |
9535ce73 JH |
419 | HEAD |
420 | EOF | |
421 | git -C r4 index-pack ../filter.pack && | |
bdbc17e8 | 422 | |
61de0ff6 MD |
423 | git -C r4 verify-pack -v ../filter.pack >verify_result && |
424 | grep blob verify_result | | |
fb2d0db5 | 425 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
426 | sort >observed && |
427 | ||
dcbaa0b3 | 428 | test_cmp expected observed |
9535ce73 JH |
429 | ' |
430 | ||
431 | test_expect_success 'verify sparse:oid=oid-ish' ' | |
3f75a6e5 RS |
432 | git -C r4 ls-files -s dir1/sparse1 dir1/sparse2 >ls_files_result && |
433 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
434 | sort >expected && |
435 | ||
966b4be2 | 436 | git -C r4 pack-objects --revs --stdout --filter=sparse:oid=main:pattern >filter.pack <<-EOF && |
9535ce73 JH |
437 | HEAD |
438 | EOF | |
439 | git -C r4 index-pack ../filter.pack && | |
bdbc17e8 | 440 | |
61de0ff6 MD |
441 | git -C r4 verify-pack -v ../filter.pack >verify_result && |
442 | grep blob verify_result | | |
fb2d0db5 | 443 | parse_verify_pack_blob_oid | |
bdbc17e8 MD |
444 | sort >observed && |
445 | ||
dcbaa0b3 | 446 | test_cmp expected observed |
9535ce73 JH |
447 | ' |
448 | ||
449 | # Delete some loose objects and use pack-objects, but WITHOUT any filtering. | |
450 | # This models previously omitted objects that we did not receive. | |
451 | ||
452 | test_expect_success 'setup r1 - delete loose blobs' ' | |
3f75a6e5 RS |
453 | git -C r1 ls-files -s file.1 file.2 file.3 file.4 file.5 \ |
454 | >ls_files_result && | |
455 | test_parse_ls_files_stage_oids <ls_files_result | | |
bdbc17e8 MD |
456 | sort >expected && |
457 | ||
9535ce73 JH |
458 | for id in `cat expected | sed "s|..|&/|"` |
459 | do | |
d0fd9931 | 460 | rm r1/.git/objects/$id || return 1 |
9535ce73 JH |
461 | done |
462 | ' | |
463 | ||
464 | test_expect_success 'verify pack-objects fails w/ missing objects' ' | |
effc2bae | 465 | test_must_fail git -C r1 pack-objects --revs --stdout >miss.pack <<-EOF |
9535ce73 JH |
466 | HEAD |
467 | EOF | |
468 | ' | |
469 | ||
470 | test_expect_success 'verify pack-objects fails w/ --missing=error' ' | |
effc2bae | 471 | test_must_fail git -C r1 pack-objects --revs --stdout --missing=error >miss.pack <<-EOF |
9535ce73 JH |
472 | HEAD |
473 | EOF | |
474 | ' | |
475 | ||
476 | test_expect_success 'verify pack-objects w/ --missing=allow-any' ' | |
effc2bae | 477 | git -C r1 pack-objects --revs --stdout --missing=allow-any >miss.pack <<-EOF |
9535ce73 JH |
478 | HEAD |
479 | EOF | |
480 | ' | |
481 | ||
482 | test_done |