Teach read-tree the -n|--dry-run option
The option can be used to check if read-tree with the same set of other options like "-m" and "-u" would succeed without actually changing either the index or the working tree. The relevant tests in the t10?? range were extended to do a read-tree -n before the real read-tree to make sure neither the index nor any local files were changed with -n and the same exit code as without -n is returned. The helper functions added for that purpose reside in the new t/lib-read-tree.sh file. The only exception is #13 in t1004 ("unlinking an un-unlink-able symlink"). As this is an issue of wrong directory permissions it is not detected with -n. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jens Lehmann committed
May 25, 2011 at 22:10 UTC
ea5070c91f23e41a88dec48d2f8d96444c2d647a
12 files changed
+198
-140
Documentation/git-read-tree.txt
+5
@@ -53,6 +53,11 @@ OPTIONS
53
trees that are not directly related to the current
54
working tree status into a temporary index file.
55
56
+-n::
57
+--dry-run::
58
+ Check if the command would error out, without updating the index
59
+ nor the files in the working tree for real.
60
+
61
-v::
62
Show the progress of checking files out.
63
builtin/read-tree.c
+2
-1
@@ -130,6 +130,7 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
130
PARSE_OPT_NONEG, exclude_per_directory_cb },
131
OPT_SET_INT('i', NULL, &opts.index_only,
132
"don't check the working tree after merging", 1),
133
+ OPT__DRY_RUN(&opts.dry_run, "don't update the index or the work tree"),
134
OPT_SET_INT(0, "no-sparse-checkout", &opts.skip_sparse_checkout,
135
"skip applying sparse checkout filter", 1),
136
OPT_SET_INT(0, "debug-unpack", &opts.debug_unpack,
@@ -219,7 +220,7 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
220
if (unpack_trees(nr_trees, t, &opts))
221
return 128;
222
222
- if (opts.debug_unpack)
223
+ if (opts.debug_unpack || opts.dry_run)
224
return 0; /* do not write the index out */
225
226
/*
t/lib-read-tree.sh
new
+43
@@ -0,0 +1,43 @@
1
+#!/bin/sh
2
+#
3
+# Helper functions to check if read-tree would succeed/fail as expected with
4
+# and without the dry-run option. They also test that the dry-run does not
5
+# write the index and that together with -u it doesn't touch the work tree.
6
+#
7
+read_tree_must_succeed () {
8
+ git ls-files -s >pre-dry-run &&
9
+ git read-tree -n "$@" &&
10
+ git ls-files -s >post-dry-run &&
11
+ test_cmp pre-dry-run post-dry-run &&
12
+ git read-tree "$@"
13
+}
14
+
15
+read_tree_must_fail () {
16
+ git ls-files -s >pre-dry-run &&
17
+ test_must_fail git read-tree -n "$@" &&
18
+ git ls-files -s >post-dry-run &&
19
+ test_cmp pre-dry-run post-dry-run &&
20
+ test_must_fail git read-tree "$@"
21
+}
22
+
23
+read_tree_u_must_succeed () {
24
+ git ls-files -s >pre-dry-run &&
25
+ git diff-files -p >pre-dry-run-wt &&
26
+ git read-tree -n "$@" &&
27
+ git ls-files -s >post-dry-run &&
28
+ git diff-files -p >post-dry-run-wt &&
29
+ test_cmp pre-dry-run post-dry-run &&
30
+ test_cmp pre-dry-run-wt post-dry-run-wt &&
31
+ git read-tree "$@"
32
+}
33
+
34
+read_tree_u_must_fail () {
35
+ git ls-files -s >pre-dry-run &&
36
+ git diff-files -p >pre-dry-run-wt &&
37
+ test_must_fail git read-tree -n "$@" &&
38
+ git ls-files -s >post-dry-run &&
39
+ git diff-files -p >post-dry-run-wt &&
40
+ test_cmp pre-dry-run post-dry-run &&
41
+ test_cmp pre-dry-run-wt post-dry-run-wt &&
42
+ test_must_fail git read-tree "$@"
43
+}
t/t1000-read-tree-m-3way.sh
+41
-40
@@ -72,6 +72,7 @@ In addition:
72
73
'
74
. ./test-lib.sh
75
+. "$TEST_DIRECTORY"/lib-read-tree.sh
76
. "$TEST_DIRECTORY"/lib-read-tree-m-3way.sh
77
78
################################################################
@@ -137,7 +138,7 @@ test_expect_success \
138
'3-way merge with git read-tree -m, empty cache' \
139
"rm -fr [NDMALTS][NDMALTSF] Z &&
140
rm .git/index &&
140
- git read-tree -m $tree_O $tree_A $tree_B &&
141
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
142
check_result"
143
144
# This starts out with the first head, which is the normal
@@ -146,9 +147,9 @@ test_expect_success \
147
'3-way merge with git read-tree -m, match H' \
148
"rm -fr [NDMALTS][NDMALTSF] Z &&
149
rm .git/index &&
149
- git read-tree $tree_A &&
150
+ read_tree_must_succeed $tree_A &&
151
git checkout-index -f -u -a &&
151
- git read-tree -m $tree_O $tree_A $tree_B &&
152
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
153
check_result"
154
155
: <<\END_OF_CASE_TABLE
@@ -211,7 +212,7 @@ test_expect_success '1 - must not have an entry not in A.' "
212
rm -f .git/index XX &&
213
echo XX >XX &&
214
git update-index --add XX &&
214
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
215
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
216
"
217
218
test_expect_success \
@@ -219,7 +220,7 @@ test_expect_success \
220
"rm -f .git/index NA &&
221
cp .orig-B/NA NA &&
222
git update-index --add NA &&
222
- git read-tree -m $tree_O $tree_A $tree_B"
223
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B"
224
225
test_expect_success \
226
'2 - matching B alone is OK in !O && !A && B case.' \
@@ -227,14 +228,14 @@ test_expect_success \
228
cp .orig-B/NA NA &&
229
git update-index --add NA &&
230
echo extra >>NA &&
230
- git read-tree -m $tree_O $tree_A $tree_B"
231
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B"
232
233
test_expect_success \
234
'3 - must match A in !O && A && !B case.' \
235
"rm -f .git/index AN &&
236
cp .orig-A/AN AN &&
237
git update-index --add AN &&
237
- git read-tree -m $tree_O $tree_A $tree_B &&
238
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
239
check_result"
240
241
test_expect_success \
@@ -243,7 +244,7 @@ test_expect_success \
244
cp .orig-A/AN AN &&
245
git update-index --add AN &&
246
echo extra >>AN &&
246
- git read-tree -m $tree_O $tree_A $tree_B"
247
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B"
248
249
test_expect_success \
250
'3 (fail) - must match A in !O && A && !B case.' "
@@ -251,7 +252,7 @@ test_expect_success \
252
cp .orig-A/AN AN &&
253
echo extra >>AN &&
254
git update-index --add AN &&
254
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
255
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
256
"
257
258
test_expect_success \
@@ -259,7 +260,7 @@ test_expect_success \
260
"rm -f .git/index AA &&
261
cp .orig-A/AA AA &&
262
git update-index --add AA &&
262
- git read-tree -m $tree_O $tree_A $tree_B &&
263
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
264
check_result"
265
266
test_expect_success \
@@ -268,7 +269,7 @@ test_expect_success \
269
cp .orig-A/AA AA &&
270
git update-index --add AA &&
271
echo extra >>AA &&
271
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
272
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
273
"
274
275
test_expect_success \
@@ -277,7 +278,7 @@ test_expect_success \
278
cp .orig-A/AA AA &&
279
echo extra >>AA &&
280
git update-index --add AA &&
280
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
281
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
282
"
283
284
test_expect_success \
@@ -285,7 +286,7 @@ test_expect_success \
286
"rm -f .git/index LL &&
287
cp .orig-A/LL LL &&
288
git update-index --add LL &&
288
- git read-tree -m $tree_O $tree_A $tree_B &&
289
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
290
check_result"
291
292
test_expect_success \
@@ -294,7 +295,7 @@ test_expect_success \
295
cp .orig-A/LL LL &&
296
git update-index --add LL &&
297
echo extra >>LL &&
297
- git read-tree -m $tree_O $tree_A $tree_B &&
298
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
299
check_result"
300
301
test_expect_success \
@@ -303,7 +304,7 @@ test_expect_success \
304
cp .orig-A/LL LL &&
305
echo extra >>LL &&
306
git update-index --add LL &&
306
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
307
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
308
"
309
310
test_expect_success \
@@ -311,7 +312,7 @@ test_expect_success \
312
rm -f .git/index DD &&
313
echo DD >DD &&
314
git update-index --add DD &&
314
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
315
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
316
"
317
318
test_expect_success \
@@ -319,7 +320,7 @@ test_expect_success \
320
rm -f .git/index DM &&
321
cp .orig-B/DM DM &&
322
git update-index --add DM &&
322
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
323
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
324
"
325
326
test_expect_success \
@@ -327,7 +328,7 @@ test_expect_success \
328
rm -f .git/index DN &&
329
cp .orig-B/DN DN &&
330
git update-index --add DN &&
330
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
331
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
332
"
333
334
test_expect_success \
@@ -335,7 +336,7 @@ test_expect_success \
336
"rm -f .git/index MD &&
337
cp .orig-A/MD MD &&
338
git update-index --add MD &&
338
- git read-tree -m $tree_O $tree_A $tree_B &&
339
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
340
check_result"
341
342
test_expect_success \
@@ -344,7 +345,7 @@ test_expect_success \
345
cp .orig-A/MD MD &&
346
git update-index --add MD &&
347
echo extra >>MD &&
347
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
348
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
349
"
350
351
test_expect_success \
@@ -353,7 +354,7 @@ test_expect_success \
354
cp .orig-A/MD MD &&
355
echo extra >>MD &&
356
git update-index --add MD &&
356
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
357
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
358
"
359
360
test_expect_success \
@@ -361,7 +362,7 @@ test_expect_success \
362
"rm -f .git/index ND &&
363
cp .orig-A/ND ND &&
364
git update-index --add ND &&
364
- git read-tree -m $tree_O $tree_A $tree_B &&
365
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
366
check_result"
367
368
test_expect_success \
@@ -370,7 +371,7 @@ test_expect_success \
371
cp .orig-A/ND ND &&
372
git update-index --add ND &&
373
echo extra >>ND &&
373
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
374
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
375
"
376
377
test_expect_success \
@@ -379,7 +380,7 @@ test_expect_success \
380
cp .orig-A/ND ND &&
381
echo extra >>ND &&
382
git update-index --add ND &&
382
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
383
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
384
"
385
386
test_expect_success \
@@ -387,7 +388,7 @@ test_expect_success \
388
"rm -f .git/index MM &&
389
cp .orig-A/MM MM &&
390
git update-index --add MM &&
390
- git read-tree -m $tree_O $tree_A $tree_B &&
391
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
392
check_result"
393
394
test_expect_success \
@@ -396,7 +397,7 @@ test_expect_success \
397
cp .orig-A/MM MM &&
398
git update-index --add MM &&
399
echo extra >>MM &&
399
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
400
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
401
"
402
403
test_expect_success \
@@ -405,7 +406,7 @@ test_expect_success \
406
cp .orig-A/MM MM &&
407
echo extra >>MM &&
408
git update-index --add MM &&
408
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
409
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
410
"
411
412
test_expect_success \
@@ -413,7 +414,7 @@ test_expect_success \
414
"rm -f .git/index SS &&
415
cp .orig-A/SS SS &&
416
git update-index --add SS &&
416
- git read-tree -m $tree_O $tree_A $tree_B &&
417
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
418
check_result"
419
420
test_expect_success \
@@ -422,7 +423,7 @@ test_expect_success \
423
cp .orig-A/SS SS &&
424
git update-index --add SS &&
425
echo extra >>SS &&
425
- git read-tree -m $tree_O $tree_A $tree_B &&
426
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
427
check_result"
428
429
test_expect_success \
@@ -431,7 +432,7 @@ test_expect_success \
432
cp .orig-A/SS SS &&
433
echo extra >>SS &&
434
git update-index --add SS &&
434
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
435
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
436
"
437
438
test_expect_success \
@@ -439,7 +440,7 @@ test_expect_success \
440
"rm -f .git/index MN &&
441
cp .orig-A/MN MN &&
442
git update-index --add MN &&
442
- git read-tree -m $tree_O $tree_A $tree_B &&
443
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
444
check_result"
445
446
test_expect_success \
@@ -448,7 +449,7 @@ test_expect_success \
449
cp .orig-A/MN MN &&
450
git update-index --add MN &&
451
echo extra >>MN &&
451
- git read-tree -m $tree_O $tree_A $tree_B &&
452
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
453
check_result"
454
455
test_expect_success \
@@ -456,7 +457,7 @@ test_expect_success \
457
"rm -f .git/index NM &&
458
cp .orig-A/NM NM &&
459
git update-index --add NM &&
459
- git read-tree -m $tree_O $tree_A $tree_B &&
460
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
461
check_result"
462
463
test_expect_success \
@@ -465,7 +466,7 @@ test_expect_success \
466
cp .orig-B/NM NM &&
467
git update-index --add NM &&
468
echo extra >>NM &&
468
- git read-tree -m $tree_O $tree_A $tree_B &&
469
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
470
check_result"
471
472
test_expect_success \
@@ -474,7 +475,7 @@ test_expect_success \
475
cp .orig-A/NM NM &&
476
git update-index --add NM &&
477
echo extra >>NM &&
477
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
478
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
479
"
480
481
test_expect_success \
@@ -483,7 +484,7 @@ test_expect_success \
484
cp .orig-A/NM NM &&
485
echo extra >>NM &&
486
git update-index --add NM &&
486
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
487
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
488
"
489
490
test_expect_success \
@@ -491,7 +492,7 @@ test_expect_success \
492
"rm -f .git/index NN &&
493
cp .orig-A/NN NN &&
494
git update-index --add NN &&
494
- git read-tree -m $tree_O $tree_A $tree_B &&
495
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
496
check_result"
497
498
test_expect_success \
@@ -500,7 +501,7 @@ test_expect_success \
501
cp .orig-A/NN NN &&
502
git update-index --add NN &&
503
echo extra >>NN &&
503
- git read-tree -m $tree_O $tree_A $tree_B &&
504
+ read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
505
check_result"
506
507
test_expect_success \
@@ -509,7 +510,7 @@ test_expect_success \
510
cp .orig-A/NN NN &&
511
echo extra >>NN &&
512
git update-index --add NN &&
512
- test_must_fail git read-tree -m $tree_O $tree_A $tree_B
513
+ read_tree_must_fail -m $tree_O $tree_A $tree_B
514
"
515
516
# #16
@@ -522,7 +523,7 @@ test_expect_success \
523
echo E16 >F16 &&
524
git update-index F16 &&
525
tree1=`git write-tree` &&
525
- git read-tree -m $tree0 $tree1 $tree1 $tree0 &&
526
+ read_tree_must_succeed -m $tree0 $tree1 $tree1 $tree0 &&
527
git ls-files --stage'
528
529
test_done
t/t1001-read-tree-m-2way.sh
+23
-22
@@ -21,6 +21,7 @@ In the test, these paths are used:
21
yomin - not in H nor M
22
'
23
. ./test-lib.sh
24
+. "$TEST_DIRECTORY"/lib-read-tree.sh
25
26
read_tree_twoway () {
27
git read-tree -m "$1" "$2" && git ls-files --stage
@@ -94,7 +95,7 @@ echo '+100644 X 0 yomin' >expected
95
test_expect_success \
96
'4 - carry forward local addition.' \
97
'rm -f .git/index &&
97
- git read-tree $treeH &&
98
+ read_tree_must_succeed $treeH &&
99
git checkout-index -u -f -q -a &&
100
git update-index --add yomin &&
101
read_tree_twoway $treeH $treeM &&
@@ -106,7 +107,7 @@ test_expect_success \
107
test_expect_success \
108
'5 - carry forward local addition.' \
109
'rm -f .git/index &&
109
- git read-tree $treeH &&
110
+ read_tree_must_succeed $treeH &&
111
git checkout-index -u -f -q -a &&
112
echo yomin >yomin &&
113
git update-index --add yomin &&
@@ -120,7 +121,7 @@ test_expect_success \
121
test_expect_success \
122
'6 - local addition already has the same.' \
123
'rm -f .git/index &&
123
- git read-tree $treeH &&
124
+ read_tree_must_succeed $treeH &&
125
git checkout-index -u -f -q -a &&
126
git update-index --add frotz &&
127
read_tree_twoway $treeH $treeM &&
@@ -131,7 +132,7 @@ test_expect_success \
132
test_expect_success \
133
'7 - local addition already has the same.' \
134
'rm -f .git/index &&
134
- git read-tree $treeH &&
135
+ read_tree_must_succeed $treeH &&
136
git checkout-index -u -f -q -a &&
137
echo frotz >frotz &&
138
git update-index --add frotz &&
@@ -144,7 +145,7 @@ test_expect_success \
145
test_expect_success \
146
'8 - conflicting addition.' \
147
'rm -f .git/index &&
147
- git read-tree $treeH &&
148
+ read_tree_must_succeed $treeH &&
149
git checkout-index -u -f -q -a &&
150
echo frotz frotz >frotz &&
151
git update-index --add frotz &&
@@ -153,7 +154,7 @@ test_expect_success \
154
test_expect_success \
155
'9 - conflicting addition.' \
156
'rm -f .git/index &&
156
- git read-tree $treeH &&
157
+ read_tree_must_succeed $treeH &&
158
git checkout-index -u -f -q -a &&
159
echo frotz frotz >frotz &&
160
git update-index --add frotz &&
@@ -163,7 +164,7 @@ test_expect_success \
164
test_expect_success \
165
'10 - path removed.' \
166
'rm -f .git/index &&
166
- git read-tree $treeH &&
167
+ read_tree_must_succeed $treeH &&
168
git checkout-index -u -f -q -a &&
169
echo rezrov >rezrov &&
170
git update-index --add rezrov &&
@@ -174,7 +175,7 @@ test_expect_success \
175
test_expect_success \
176
'11 - dirty path removed.' \
177
'rm -f .git/index &&
177
- git read-tree $treeH &&
178
+ read_tree_must_succeed $treeH &&
179
git checkout-index -u -f -q -a &&
180
echo rezrov >rezrov &&
181
git update-index --add rezrov &&
@@ -184,7 +185,7 @@ test_expect_success \
185
test_expect_success \
186
'12 - unmatching local changes being removed.' \
187
'rm -f .git/index &&
187
- git read-tree $treeH &&
188
+ read_tree_must_succeed $treeH &&
189
git checkout-index -u -f -q -a &&
190
echo rezrov rezrov >rezrov &&
191
git update-index --add rezrov &&
@@ -193,7 +194,7 @@ test_expect_success \
194
test_expect_success \
195
'13 - unmatching local changes being removed.' \
196
'rm -f .git/index &&
196
- git read-tree $treeH &&
197
+ read_tree_must_succeed $treeH &&
198
git checkout-index -u -f -q -a &&
199
echo rezrov rezrov >rezrov &&
200
git update-index --add rezrov &&
@@ -208,7 +209,7 @@ EOF
209
test_expect_success \
210
'14 - unchanged in two heads.' \
211
'rm -f .git/index &&
211
- git read-tree $treeH &&
212
+ read_tree_must_succeed $treeH &&
213
git checkout-index -u -f -q -a &&
214
echo nitfol nitfol >nitfol &&
215
git update-index --add nitfol &&
@@ -221,7 +222,7 @@ test_expect_success \
222
test_expect_success \
223
'15 - unchanged in two heads.' \
224
'rm -f .git/index &&
224
- git read-tree $treeH &&
225
+ read_tree_must_succeed $treeH &&
226
git checkout-index -u -f -q -a &&
227
echo nitfol nitfol >nitfol &&
228
git update-index --add nitfol &&
@@ -235,7 +236,7 @@ test_expect_success \
236
test_expect_success \
237
'16 - conflicting local change.' \
238
'rm -f .git/index &&
238
- git read-tree $treeH &&
239
+ read_tree_must_succeed $treeH &&
240
git checkout-index -u -f -q -a &&
241
echo bozbar bozbar >bozbar &&
242
git update-index --add bozbar &&
@@ -244,7 +245,7 @@ test_expect_success \
245
test_expect_success \
246
'17 - conflicting local change.' \
247
'rm -f .git/index &&
247
- git read-tree $treeH &&
248
+ read_tree_must_succeed $treeH &&
249
git checkout-index -u -f -q -a &&
250
echo bozbar bozbar >bozbar &&
251
git update-index --add bozbar &&
@@ -254,7 +255,7 @@ test_expect_success \
255
test_expect_success \
256
'18 - local change already having a good result.' \
257
'rm -f .git/index &&
257
- git read-tree $treeH &&
258
+ read_tree_must_succeed $treeH &&
259
git checkout-index -u -f -q -a &&
260
cat bozbar-new >bozbar &&
261
git update-index --add bozbar &&
@@ -266,7 +267,7 @@ test_expect_success \
267
test_expect_success \
268
'19 - local change already having a good result, further modified.' \
269
'rm -f .git/index &&
269
- git read-tree $treeH &&
270
+ read_tree_must_succeed $treeH &&
271
git checkout-index -u -f -q -a &&
272
cat bozbar-new >bozbar &&
273
git update-index --add bozbar &&
@@ -279,7 +280,7 @@ test_expect_success \
280
test_expect_success \
281
'20 - no local change, use new tree.' \
282
'rm -f .git/index &&
282
- git read-tree $treeH &&
283
+ read_tree_must_succeed $treeH &&
284
git checkout-index -u -f -q -a &&
285
cat bozbar-old >bozbar &&
286
git update-index --add bozbar &&
@@ -291,7 +292,7 @@ test_expect_success \
292
test_expect_success \
293
'21 - no local change, dirty cache.' \
294
'rm -f .git/index &&
294
- git read-tree $treeH &&
295
+ read_tree_must_succeed $treeH &&
296
git checkout-index -u -f -q -a &&
297
cat bozbar-old >bozbar &&
298
git update-index --add bozbar &&
@@ -302,7 +303,7 @@ test_expect_success \
303
test_expect_success \
304
'22 - local change cache updated.' \
305
'rm -f .git/index &&
305
- git read-tree $treeH &&
306
+ read_tree_must_succeed $treeH &&
307
git checkout-index -u -f -q -a &&
308
sed -e "s/such as/SUCH AS/" bozbar-old >bozbar &&
309
git update-index --add bozbar &&
@@ -359,7 +360,7 @@ test_expect_success \
360
361
test_expect_success \
362
'a/b (untracked) vs a, plus c/d case test.' \
362
- 'test_must_fail git read-tree -u -m "$treeH" "$treeM" &&
363
+ 'read_tree_u_must_fail -u -m "$treeH" "$treeM" &&
364
git ls-files --stage &&
365
test -f a/b'
366
@@ -386,7 +387,7 @@ test_expect_success \
387
388
test_expect_success \
389
'a/b vs a, plus c/d case test.' \
389
- 'git read-tree -u -m "$treeH" "$treeM" &&
390
+ 'read_tree_u_must_succeed -u -m "$treeH" "$treeM" &&
391
git ls-files --stage | tee >treeMcheck.out &&
392
test_cmp treeM.out treeMcheck.out'
393
@@ -401,7 +402,7 @@ test_expect_success '-m references the correct modified tree' '
402
echo a >file-a &&
403
git add file-a &&
404
git ls-tree $(git write-tree) file-a >expect &&
404
- git read-tree -m HEAD initial-mod &&
405
+ read_tree_must_succeed -m HEAD initial-mod &&
406
git ls-tree $(git write-tree) file-a >actual &&
407
test_cmp expect actual
408
'
t/t1002-read-tree-m-u-2way.sh
+41
-40
@@ -9,6 +9,7 @@ This is identical to t1001, but uses -u to update the work tree as well.
9
10
'
11
. ./test-lib.sh
12
+. "$TEST_DIRECTORY"/lib-read-tree.sh
13
14
compare_change () {
15
sed >current \
@@ -56,8 +57,8 @@ test_expect_success \
57
test_expect_success \
58
'1, 2, 3 - no carry forward' \
59
'rm -f .git/index nitfol bozbar rezrov frotz &&
59
- git read-tree --reset -u $treeH &&
60
- git read-tree -m -u $treeH $treeM &&
60
+ read_tree_u_must_succeed --reset -u $treeH &&
61
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
62
git ls-files --stage >1-3.out &&
63
cmp M.out 1-3.out &&
64
sum bozbar frotz nitfol >actual3.sum &&
@@ -69,11 +70,11 @@ test_expect_success \
70
test_expect_success \
71
'4 - carry forward local addition.' \
72
'rm -f .git/index nitfol bozbar rezrov frotz &&
72
- git read-tree --reset -u $treeH &&
73
+ read_tree_u_must_succeed --reset -u $treeH &&
74
echo "+100644 X 0 yomin" >expected &&
75
echo yomin >yomin &&
76
git update-index --add yomin &&
76
- git read-tree -m -u $treeH $treeM &&
77
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
78
git ls-files --stage >4.out || return 1
79
git diff -U0 --no-index M.out 4.out >4diff.out
80
compare_change 4diff.out expected &&
@@ -87,12 +88,12 @@ test_expect_success \
88
test_expect_success \
89
'5 - carry forward local addition.' \
90
'rm -f .git/index nitfol bozbar rezrov frotz &&
90
- git read-tree --reset -u $treeH &&
91
- git read-tree -m -u $treeH &&
91
+ read_tree_u_must_succeed --reset -u $treeH &&
92
+ read_tree_u_must_succeed -m -u $treeH &&
93
echo yomin >yomin &&
94
git update-index --add yomin &&
95
echo yomin yomin >yomin &&
95
- git read-tree -m -u $treeH $treeM &&
96
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
97
git ls-files --stage >5.out || return 1
98
git diff -U0 --no-index M.out 5.out >5diff.out
99
compare_change 5diff.out expected &&
@@ -107,10 +108,10 @@ test_expect_success \
108
test_expect_success \
109
'6 - local addition already has the same.' \
110
'rm -f .git/index nitfol bozbar rezrov frotz &&
110
- git read-tree --reset -u $treeH &&
111
+ read_tree_u_must_succeed --reset -u $treeH &&
112
echo frotz >frotz &&
113
git update-index --add frotz &&
113
- git read-tree -m -u $treeH $treeM &&
114
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
115
git ls-files --stage >6.out &&
116
test_cmp M.out 6.out &&
117
check_cache_at frotz clean &&
@@ -123,11 +124,11 @@ test_expect_success \
124
test_expect_success \
125
'7 - local addition already has the same.' \
126
'rm -f .git/index nitfol bozbar rezrov frotz &&
126
- git read-tree --reset -u $treeH &&
127
+ read_tree_u_must_succeed --reset -u $treeH &&
128
echo frotz >frotz &&
129
git update-index --add frotz &&
130
echo frotz frotz >frotz &&
130
- git read-tree -m -u $treeH $treeM &&
131
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
132
git ls-files --stage >7.out &&
133
test_cmp M.out 7.out &&
134
check_cache_at frotz dirty &&
@@ -141,27 +142,27 @@ test_expect_success \
142
test_expect_success \
143
'8 - conflicting addition.' \
144
'rm -f .git/index nitfol bozbar rezrov frotz &&
144
- git read-tree --reset -u $treeH &&
145
+ read_tree_u_must_succeed --reset -u $treeH &&
146
echo frotz frotz >frotz &&
147
git update-index --add frotz &&
147
- if git read-tree -m -u $treeH $treeM; then false; else :; fi'
148
+ if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi'
149
150
test_expect_success \
151
'9 - conflicting addition.' \
152
'rm -f .git/index nitfol bozbar rezrov frotz &&
152
- git read-tree --reset -u $treeH &&
153
+ read_tree_u_must_succeed --reset -u $treeH &&
154
echo frotz frotz >frotz &&
155
git update-index --add frotz &&
156
echo frotz >frotz &&
156
- if git read-tree -m -u $treeH $treeM; then false; else :; fi'
157
+ if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi'
158
159
test_expect_success \
160
'10 - path removed.' \
161
'rm -f .git/index nitfol bozbar rezrov frotz &&
161
- git read-tree --reset -u $treeH &&
162
+ read_tree_u_must_succeed --reset -u $treeH &&
163
echo rezrov >rezrov &&
164
git update-index --add rezrov &&
164
- git read-tree -m -u $treeH $treeM &&
165
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
166
git ls-files --stage >10.out &&
167
cmp M.out 10.out &&
168
sum bozbar frotz nitfol >actual10.sum &&
@@ -170,28 +171,28 @@ test_expect_success \
171
test_expect_success \
172
'11 - dirty path removed.' \
173
'rm -f .git/index nitfol bozbar rezrov frotz &&
173
- git read-tree --reset -u $treeH &&
174
+ read_tree_u_must_succeed --reset -u $treeH &&
175
echo rezrov >rezrov &&
176
git update-index --add rezrov &&
177
echo rezrov rezrov >rezrov &&
177
- if git read-tree -m -u $treeH $treeM; then false; else :; fi'
178
+ if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi'
179
180
test_expect_success \
181
'12 - unmatching local changes being removed.' \
182
'rm -f .git/index nitfol bozbar rezrov frotz &&
182
- git read-tree --reset -u $treeH &&
183
+ read_tree_u_must_succeed --reset -u $treeH &&
184
echo rezrov rezrov >rezrov &&
185
git update-index --add rezrov &&
185
- if git read-tree -m -u $treeH $treeM; then false; else :; fi'
186
+ if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi'
187
188
test_expect_success \
189
'13 - unmatching local changes being removed.' \
190
'rm -f .git/index nitfol bozbar rezrov frotz &&
190
- git read-tree --reset -u $treeH &&
191
+ read_tree_u_must_succeed --reset -u $treeH &&
192
echo rezrov rezrov >rezrov &&
193
git update-index --add rezrov &&
194
echo rezrov >rezrov &&
194
- if git read-tree -m -u $treeH $treeM; then false; else :; fi'
195
+ if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi'
196
197
cat >expected <<EOF
198
-100644 X 0 nitfol
@@ -201,10 +202,10 @@ EOF
202
test_expect_success \
203
'14 - unchanged in two heads.' \
204
'rm -f .git/index nitfol bozbar rezrov frotz &&
204
- git read-tree --reset -u $treeH &&
205
+ read_tree_u_must_succeed --reset -u $treeH &&
206
echo nitfol nitfol >nitfol &&
207
git update-index --add nitfol &&
207
- git read-tree -m -u $treeH $treeM &&
208
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
209
git ls-files --stage >14.out &&
210
test_must_fail git diff -U0 --no-index M.out 14.out >14diff.out &&
211
compare_change 14diff.out expected &&
@@ -221,11 +222,11 @@ test_expect_success \
222
test_expect_success \
223
'15 - unchanged in two heads.' \
224
'rm -f .git/index nitfol bozbar rezrov frotz &&
224
- git read-tree --reset -u $treeH &&
225
+ read_tree_u_must_succeed --reset -u $treeH &&
226
echo nitfol nitfol >nitfol &&
227
git update-index --add nitfol &&
228
echo nitfol nitfol nitfol >nitfol &&
228
- git read-tree -m -u $treeH $treeM &&
229
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
230
git ls-files --stage >15.out &&
231
test_must_fail git diff -U0 --no-index M.out 15.out >15diff.out &&
232
compare_change 15diff.out expected &&
@@ -242,27 +243,27 @@ test_expect_success \
243
test_expect_success \
244
'16 - conflicting local change.' \
245
'rm -f .git/index nitfol bozbar rezrov frotz &&
245
- git read-tree --reset -u $treeH &&
246
+ read_tree_u_must_succeed --reset -u $treeH &&
247
echo bozbar bozbar >bozbar &&
248
git update-index --add bozbar &&
248
- if git read-tree -m -u $treeH $treeM; then false; else :; fi'
249
+ if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi'
250
251
test_expect_success \
252
'17 - conflicting local change.' \
253
'rm -f .git/index nitfol bozbar rezrov frotz &&
253
- git read-tree --reset -u $treeH &&
254
+ read_tree_u_must_succeed --reset -u $treeH &&
255
echo bozbar bozbar >bozbar &&
256
git update-index --add bozbar &&
257
echo bozbar bozbar bozbar >bozbar &&
257
- if git read-tree -m -u $treeH $treeM; then false; else :; fi'
258
+ if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi'
259
260
test_expect_success \
261
'18 - local change already having a good result.' \
262
'rm -f .git/index nitfol bozbar rezrov frotz &&
262
- git read-tree --reset -u $treeH &&
263
+ read_tree_u_must_succeed --reset -u $treeH &&
264
echo gnusto >bozbar &&
265
git update-index --add bozbar &&
265
- git read-tree -m -u $treeH $treeM &&
266
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
267
git ls-files --stage >18.out &&
268
test_cmp M.out 18.out &&
269
check_cache_at bozbar clean &&
@@ -272,11 +273,11 @@ test_expect_success \
273
test_expect_success \
274
'19 - local change already having a good result, further modified.' \
275
'rm -f .git/index nitfol bozbar rezrov frotz &&
275
- git read-tree --reset -u $treeH &&
276
+ read_tree_u_must_succeed --reset -u $treeH &&
277
echo gnusto >bozbar &&
278
git update-index --add bozbar &&
279
echo gnusto gnusto >bozbar &&
279
- git read-tree -m -u $treeH $treeM &&
280
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
281
git ls-files --stage >19.out &&
282
test_cmp M.out 19.out &&
283
check_cache_at bozbar dirty &&
@@ -292,10 +293,10 @@ test_expect_success \
293
test_expect_success \
294
'20 - no local change, use new tree.' \
295
'rm -f .git/index nitfol bozbar rezrov frotz &&
295
- git read-tree --reset -u $treeH &&
296
+ read_tree_u_must_succeed --reset -u $treeH &&
297
echo bozbar >bozbar &&
298
git update-index --add bozbar &&
298
- git read-tree -m -u $treeH $treeM &&
299
+ read_tree_u_must_succeed -m -u $treeH $treeM &&
300
git ls-files --stage >20.out &&
301
test_cmp M.out 20.out &&
302
check_cache_at bozbar clean &&
@@ -305,11 +306,11 @@ test_expect_success \
306
test_expect_success \
307
'21 - no local change, dirty cache.' \
308
'rm -f .git/index nitfol bozbar rezrov frotz &&
308
- git read-tree --reset -u $treeH &&
309
+ read_tree_u_must_succeed --reset -u $treeH &&
310
echo bozbar >bozbar &&
311
git update-index --add bozbar &&
312
echo gnusto gnusto >bozbar &&
312
- if git read-tree -m -u $treeH $treeM; then false; else :; fi'
313
+ if read_tree_u_must_succeed -m -u $treeH $treeM; then false; else :; fi'
314
315
# Also make sure we did not break DF vs DF/DF case.
316
test_expect_success \
@@ -336,7 +337,7 @@ test_expect_success \
337
rm -fr DF &&
338
echo DF >DF &&
339
git update-index --add DF &&
339
- git read-tree -m -u $treeDF $treeDFDF &&
340
+ read_tree_u_must_succeed -m -u $treeDF $treeDFDF &&
341
git ls-files --stage >DFDFcheck.out &&
342
test_cmp DFDF.out DFDFcheck.out &&
343
check_cache_at DF/DF clean'
t/t1004-read-tree-m-u-wf.sh
+12
-11
@@ -3,6 +3,7 @@
3
test_description='read-tree -m -u checks working tree files'
4
5
. ./test-lib.sh
6
+. "$TEST_DIRECTORY"/lib-read-tree.sh
7
8
# two-tree test
9
@@ -29,7 +30,7 @@ test_expect_success 'two-way not clobbering' '
30
31
echo >file2 master creates untracked file2 &&
32
echo >subdir/file2 master creates untracked subdir/file2 &&
32
- if err=`git read-tree -m -u master side 2>&1`
33
+ if err=`read_tree_u_must_succeed -m -u master side 2>&1`
34
then
35
echo should have complained
36
false
@@ -42,7 +43,7 @@ echo file2 >.gitignore
43
44
test_expect_success 'two-way with incorrect --exclude-per-directory (1)' '
45
45
- if err=`git read-tree -m --exclude-per-directory=.gitignore master side 2>&1`
46
+ if err=`read_tree_u_must_succeed -m --exclude-per-directory=.gitignore master side 2>&1`
47
then
48
echo should have complained
49
false
@@ -53,7 +54,7 @@ test_expect_success 'two-way with incorrect --exclude-per-directory (1)' '
54
55
test_expect_success 'two-way with incorrect --exclude-per-directory (2)' '
56
56
- if err=`git read-tree -m -u --exclude-per-directory=foo --exclude-per-directory=.gitignore master side 2>&1`
57
+ if err=`read_tree_u_must_succeed -m -u --exclude-per-directory=foo --exclude-per-directory=.gitignore master side 2>&1`
58
then
59
echo should have complained
60
false
@@ -64,7 +65,7 @@ test_expect_success 'two-way with incorrect --exclude-per-directory (2)' '
65
66
test_expect_success 'two-way clobbering a ignored file' '
67
67
- git read-tree -m -u --exclude-per-directory=.gitignore master side
68
+ read_tree_u_must_succeed -m -u --exclude-per-directory=.gitignore master side
69
'
70
71
rm -f .gitignore
@@ -84,7 +85,7 @@ test_expect_success 'three-way not complaining on an untracked path in both' '
85
echo >file2 file two is untracked on the master side &&
86
echo >subdir/file2 file two is untracked on the master side &&
87
87
- git read-tree -m -u branch-point master side
88
+ read_tree_u_must_succeed -m -u branch-point master side
89
'
90
91
test_expect_success 'three-way not clobbering a working tree file' '
@@ -94,7 +95,7 @@ test_expect_success 'three-way not clobbering a working tree file' '
95
git checkout master &&
96
echo >file3 file three created in master, untracked &&
97
echo >subdir/file3 file three created in master, untracked &&
97
- if err=`git read-tree -m -u branch-point master side 2>&1`
98
+ if err=`read_tree_u_must_succeed -m -u branch-point master side 2>&1`
99
then
100
echo should have complained
101
false
@@ -113,7 +114,7 @@ test_expect_success 'three-way not complaining on an untracked file' '
114
echo >file3 file three created in master, untracked &&
115
echo >subdir/file3 file three created in master, untracked &&
116
116
- git read-tree -m -u --exclude-per-directory=.gitignore branch-point master side
117
+ read_tree_u_must_succeed -m -u --exclude-per-directory=.gitignore branch-point master side
118
'
119
120
test_expect_success '3-way not overwriting local changes (setup)' '
@@ -137,7 +138,7 @@ test_expect_success '3-way not overwriting local changes (our side)' '
138
git reset --hard &&
139
140
echo >>file1 "local changes" &&
140
- git read-tree -m -u branch-point side-a side-b &&
141
+ read_tree_u_must_succeed -m -u branch-point side-a side-b &&
142
grep "new line to be kept" file1 &&
143
grep "local changes" file1
144
@@ -151,7 +152,7 @@ test_expect_success '3-way not overwriting local changes (their side)' '
152
git reset --hard &&
153
154
echo >>file2 "local changes" &&
154
- test_must_fail git read-tree -m -u branch-point side-a side-b &&
155
+ read_tree_u_must_fail -m -u branch-point side-a side-b &&
156
! grep "new line to be kept" file2 &&
157
grep "local changes" file2
158
@@ -173,7 +174,7 @@ test_expect_success SYMLINKS 'funny symlink in work tree' '
174
git add a/b &&
175
git commit -m "we add a/b" &&
176
176
- git read-tree -m -u sym-a sym-a sym-b
177
+ read_tree_u_must_succeed -m -u sym-a sym-a sym-b
178
179
'
180
@@ -209,7 +210,7 @@ test_expect_success 'D/F setup' '
210
test_expect_success 'D/F' '
211
212
git checkout side-b &&
212
- git read-tree -m -u branch-point side-b side-a &&
213
+ read_tree_u_must_succeed -m -u branch-point side-b side-a &&
214
git ls-files -u >actual &&
215
(
216
a=$(git rev-parse branch-point:subdir/file2)
t/t1005-read-tree-reset.sh
+7
-6
@@ -3,6 +3,7 @@
3
test_description='read-tree -u --reset'
4
5
. ./test-lib.sh
6
+. "$TEST_DIRECTORY"/lib-read-tree.sh
7
8
# two-tree test
9
@@ -22,13 +23,13 @@ test_expect_success 'setup' '
23
'
24
25
test_expect_success 'reset should work' '
25
- git read-tree -u --reset HEAD^ &&
26
+ read_tree_u_must_succeed -u --reset HEAD^ &&
27
git ls-files >actual &&
28
test_cmp expect actual
29
'
30
31
test_expect_success 'reset should remove remnants from a failed merge' '
31
- git read-tree --reset -u HEAD &&
32
+ read_tree_u_must_succeed --reset -u HEAD &&
33
git ls-files -s >expect &&
34
sha1=$(git rev-parse :new) &&
35
(
@@ -37,13 +38,13 @@ test_expect_success 'reset should remove remnants from a failed merge' '
38
) | git update-index --index-info &&
39
>old &&
40
git ls-files -s &&
40
- git read-tree --reset -u HEAD &&
41
+ read_tree_u_must_succeed --reset -u HEAD &&
42
git ls-files -s >actual &&
43
! test -f old
44
'
45
46
test_expect_success 'Porcelain reset should remove remnants too' '
46
- git read-tree --reset -u HEAD &&
47
+ read_tree_u_must_succeed --reset -u HEAD &&
48
git ls-files -s >expect &&
49
sha1=$(git rev-parse :new) &&
50
(
@@ -58,7 +59,7 @@ test_expect_success 'Porcelain reset should remove remnants too' '
59
'
60
61
test_expect_success 'Porcelain checkout -f should remove remnants too' '
61
- git read-tree --reset -u HEAD &&
62
+ read_tree_u_must_succeed --reset -u HEAD &&
63
git ls-files -s >expect &&
64
sha1=$(git rev-parse :new) &&
65
(
@@ -73,7 +74,7 @@ test_expect_success 'Porcelain checkout -f should remove remnants too' '
74
'
75
76
test_expect_success 'Porcelain checkout -f HEAD should remove remnants too' '
76
- git read-tree --reset -u HEAD &&
77
+ read_tree_u_must_succeed --reset -u HEAD &&
78
git ls-files -s >expect &&
79
sha1=$(git rev-parse :new) &&
80
(
t/t1008-read-tree-overlay.sh
+2
-1
@@ -3,6 +3,7 @@
3
test_description='test multi-tree read-tree without merging'
4
5
. ./test-lib.sh
6
+. "$TEST_DIRECTORY"/lib-read-tree.sh
7
8
test_expect_success setup '
9
echo one >a &&
@@ -21,7 +22,7 @@ test_expect_success setup '
22
'
23
24
test_expect_success 'multi-read' '
24
- git read-tree initial master side &&
25
+ read_tree_must_succeed initial master side &&
26
(echo a; echo b/c) >expect &&
27
git ls-files >actual &&
28
test_cmp expect actual
t/t1011-read-tree-sparse-checkout.sh
+14
-13
@@ -12,6 +12,7 @@ test_description='sparse checkout tests
12
'
13
14
. ./test-lib.sh
15
+. "$TEST_DIRECTORY"/lib-read-tree.sh
16
17
test_expect_success 'setup' '
18
cat >expected <<-\EOF &&
@@ -43,7 +44,7 @@ test_expect_success 'setup' '
44
'
45
46
test_expect_success 'read-tree without .git/info/sparse-checkout' '
46
- git read-tree -m -u HEAD &&
47
+ read_tree_u_must_succeed -m -u HEAD &&
48
git ls-files --stage >result &&
49
test_cmp expected result &&
50
git ls-files -t >result &&
@@ -52,7 +53,7 @@ test_expect_success 'read-tree without .git/info/sparse-checkout' '
53
54
test_expect_success 'read-tree with .git/info/sparse-checkout but disabled' '
55
echo >.git/info/sparse-checkout &&
55
- git read-tree -m -u HEAD &&
56
+ read_tree_u_must_succeed -m -u HEAD &&
57
git ls-files -t >result &&
58
test_cmp expected.swt result &&
59
test -f init.t &&
@@ -62,7 +63,7 @@ test_expect_success 'read-tree with .git/info/sparse-checkout but disabled' '
63
test_expect_success 'read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled' '
64
git config core.sparsecheckout true &&
65
echo >.git/info/sparse-checkout &&
65
- git read-tree --no-sparse-checkout -m -u HEAD &&
66
+ read_tree_u_must_succeed --no-sparse-checkout -m -u HEAD &&
67
git ls-files -t >result &&
68
test_cmp expected.swt result &&
69
test -f init.t &&
@@ -72,7 +73,7 @@ test_expect_success 'read-tree --no-sparse-checkout with empty .git/info/sparse-
73
test_expect_success 'read-tree with empty .git/info/sparse-checkout' '
74
git config core.sparsecheckout true &&
75
echo >.git/info/sparse-checkout &&
75
- test_must_fail git read-tree -m -u HEAD &&
76
+ read_tree_u_must_fail -m -u HEAD &&
77
git ls-files --stage >result &&
78
test_cmp expected result &&
79
git ls-files -t >result &&
@@ -90,7 +91,7 @@ test_expect_success 'match directories with trailing slash' '
91
EOF
92
93
echo sub/ > .git/info/sparse-checkout &&
93
- git read-tree -m -u HEAD &&
94
+ read_tree_u_must_succeed -m -u HEAD &&
95
git ls-files -t > result &&
96
test_cmp expected.swt-noinit result &&
97
test ! -f init.t &&
@@ -99,7 +100,7 @@ test_expect_success 'match directories with trailing slash' '
100
101
test_expect_success 'match directories without trailing slash' '
102
echo sub >.git/info/sparse-checkout &&
102
- git read-tree -m -u HEAD &&
103
+ read_tree_u_must_succeed -m -u HEAD &&
104
git ls-files -t >result &&
105
test_cmp expected.swt-noinit result &&
106
test ! -f init.t &&
@@ -149,7 +150,7 @@ EOF
150
151
test_expect_success 'match directory pattern' '
152
echo "s?b" >.git/info/sparse-checkout &&
152
- git read-tree -m -u HEAD &&
153
+ read_tree_u_must_succeed -m -u HEAD &&
154
git ls-files -t >result &&
155
test_cmp expected.swt-noinit result &&
156
test ! -f init.t &&
@@ -165,7 +166,7 @@ test_expect_success 'checkout area changes' '
166
EOF
167
168
echo init.t >.git/info/sparse-checkout &&
168
- git read-tree -m -u HEAD &&
169
+ read_tree_u_must_succeed -m -u HEAD &&
170
git ls-files -t >result &&
171
test_cmp expected.swt-nosub result &&
172
test -f init.t &&
@@ -175,7 +176,7 @@ test_expect_success 'checkout area changes' '
176
test_expect_success 'read-tree updates worktree, absent case' '
177
echo sub/added >.git/info/sparse-checkout &&
178
git checkout -f top &&
178
- git read-tree -m -u HEAD^ &&
179
+ read_tree_u_must_succeed -m -u HEAD^ &&
180
test ! -f init.t
181
'
182
@@ -183,7 +184,7 @@ test_expect_success 'read-tree updates worktree, dirty case' '
184
echo sub/added >.git/info/sparse-checkout &&
185
git checkout -f top &&
186
echo dirty >init.t &&
186
- git read-tree -m -u HEAD^ &&
187
+ read_tree_u_must_succeed -m -u HEAD^ &&
188
grep -q dirty init.t &&
189
rm init.t
190
'
@@ -192,14 +193,14 @@ test_expect_success 'read-tree removes worktree, dirty case' '
193
echo init.t >.git/info/sparse-checkout &&
194
git checkout -f top &&
195
echo dirty >added &&
195
- git read-tree -m -u HEAD^ &&
196
+ read_tree_u_must_succeed -m -u HEAD^ &&
197
grep -q dirty added
198
'
199
200
test_expect_success 'read-tree adds to worktree, absent case' '
201
echo init.t >.git/info/sparse-checkout &&
202
git checkout -f removed &&
202
- git read-tree -u -m HEAD^ &&
203
+ read_tree_u_must_succeed -u -m HEAD^ &&
204
test ! -f sub/added
205
'
206
@@ -208,7 +209,7 @@ test_expect_success 'read-tree adds to worktree, dirty case' '
209
git checkout -f removed &&
210
mkdir sub &&
211
echo dirty >sub/added &&
211
- git read-tree -u -m HEAD^ &&
212
+ read_tree_u_must_succeed -u -m HEAD^ &&
213
grep -q dirty sub/added
214
'
215
t/t1012-read-tree-df.sh
+5
-4
@@ -3,6 +3,7 @@
3
test_description='read-tree D/F conflict corner cases'
4
5
. ./test-lib.sh
6
+. "$TEST_DIRECTORY"/lib-read-tree.sh
7
8
maketree () {
9
(
@@ -53,7 +54,7 @@ test_expect_success setup '
54
55
test_expect_success '3-way (1)' '
56
settree A-000 &&
56
- git read-tree -m -u O-000 A-000 B-000 &&
57
+ read_tree_u_must_succeed -m -u O-000 A-000 B-000 &&
58
checkindex <<-EOF
59
3 a/b
60
0 a/b-2/c/d
@@ -65,7 +66,7 @@ test_expect_success '3-way (1)' '
66
67
test_expect_success '3-way (2)' '
68
settree A-001 &&
68
- git read-tree -m -u O-000 A-001 B-000 &&
69
+ read_tree_u_must_succeed -m -u O-000 A-001 B-000 &&
70
checkindex <<-EOF
71
3 a/b
72
0 a/b-2/c/d
@@ -78,7 +79,7 @@ test_expect_success '3-way (2)' '
79
80
test_expect_success '3-way (3)' '
81
settree A-010 &&
81
- git read-tree -m -u O-010 A-010 B-010 &&
82
+ read_tree_u_must_succeed -m -u O-010 A-010 B-010 &&
83
checkindex <<-EOF
84
2 t
85
1 t-0
@@ -92,7 +93,7 @@ test_expect_success '3-way (3)' '
93
94
test_expect_success '2-way (1)' '
95
settree O-020 &&
95
- git read-tree -m -u O-020 A-020 &&
96
+ read_tree_u_must_succeed -m -u O-020 A-020 &&
97
checkindex <<-EOF
98
0 ds/dma/ioat/Makefile
99
0 ds/dma/ioat/registers.h
t/t1020-subdirectory.sh
+3
-2
@@ -7,6 +7,7 @@ test_description='Try various core-level commands in subdirectory.
7
'
8
9
. ./test-lib.sh
10
+. "$TEST_DIRECTORY"/lib-read-tree.sh
11
12
test_expect_success setup '
13
long="a b c d e f g h i j k l m n o p q r s t u v w x y z" &&
@@ -98,13 +99,13 @@ test_expect_success 'checkout-index' '
99
test_expect_success 'read-tree' '
100
rm -f one dir/two &&
101
tree=`git write-tree` &&
101
- git read-tree --reset -u "$tree" &&
102
+ read_tree_u_must_succeed --reset -u "$tree" &&
103
cmp one original.one &&
104
cmp dir/two original.two &&
105
(
106
cd dir &&
107
rm -f two &&
107
- git read-tree --reset -u "$tree" &&
108
+ read_tree_u_must_succeed --reset -u "$tree" &&
109
cmp two ../original.two &&
110
cmp ../one ../original.one
111
)