@@ -16,6 +16,7 @@ Testing basic merge tool invocation'
16
16
test_expect_success ' setup' '
17
17
git config rerere.enabled true &&
18
18
echo master >file1 &&
19
+ echo master spaced >"spaced name" &&
19
20
echo master file11 >file11 &&
20
21
echo master file12 >file12 &&
21
22
echo master file13 >file13 &&
@@ -30,13 +31,14 @@ test_expect_success 'setup' '
30
31
git commit -m "Add foo"
31
32
) &&
32
33
git submodule add git://example.com/submod submod &&
33
- git add file1 file1[1-4] subdir/file3 .gitmodules submod &&
34
+ git add file1 "spaced name" file1[1-4] subdir/file3 .gitmodules submod &&
34
35
git commit -m "add initial versions" &&
35
36
36
37
git checkout -b branch1 master &&
37
38
git submodule update -N &&
38
39
echo branch1 change >file1 &&
39
40
echo branch1 newfile >file2 &&
41
+ echo branch1 spaced >"spaced name" &&
40
42
echo branch1 change file11 >file11 &&
41
43
echo branch1 change file13 >file13 &&
42
44
echo branch1 sub >subdir/file3 &&
@@ -47,14 +49,15 @@ test_expect_success 'setup' '
47
49
git commit -m "Add bar on branch1" &&
48
50
git checkout -b submod-branch1
49
51
) &&
50
- git add file1 file11 file13 file2 subdir/file3 submod &&
52
+ git add file1 "spaced name" file11 file13 file2 subdir/file3 submod &&
51
53
git rm file12 &&
52
54
git commit -m "branch1 changes" &&
53
55
54
56
git checkout master &&
55
57
git submodule update -N &&
56
58
echo master updated >file1 &&
57
59
echo master new >file2 &&
60
+ echo master updated spaced >"spaced name" &&
58
61
echo master updated file12 >file12 &&
59
62
echo master updated file14 >file14 &&
60
63
echo master new sub >subdir/file3 &&
@@ -65,7 +68,7 @@ test_expect_success 'setup' '
65
68
git commit -m "Add bar on master" &&
66
69
git checkout -b submod-master
67
70
) &&
68
- git add file1 file12 file14 file2 subdir/file3 submod &&
71
+ git add file1 "spaced name" file12 file14 file2 subdir/file3 submod &&
69
72
git rm file11 &&
70
73
git commit -m "master updates" &&
71
74
@@ -78,8 +81,8 @@ test_expect_success 'custom mergetool' '
78
81
git checkout -b test1 branch1 &&
79
82
git submodule update -N &&
80
83
test_must_fail git merge master >/dev/null 2>&1 &&
81
- ( yes "" | git mergetool file1 >/dev/null 2>&1 ) &&
82
- ( yes "" | git mergetool file2 >/dev/null 2>&1 ) &&
84
+ ( yes "" | git mergetool file1 file1 ) &&
85
+ ( yes "" | git mergetool file2 "spaced name" >/dev/null 2>&1 ) &&
83
86
( yes "" | git mergetool subdir/file3 >/dev/null 2>&1 ) &&
84
87
( yes "d" | git mergetool file11 >/dev/null 2>&1 ) &&
85
88
( yes "d" | git mergetool file12 >/dev/null 2>&1 ) &&
@@ -97,6 +100,7 @@ test_expect_success 'mergetool crlf' '
97
100
test_must_fail git merge master >/dev/null 2>&1 &&
98
101
( yes "" | git mergetool file1 >/dev/null 2>&1 ) &&
99
102
( yes "" | git mergetool file2 >/dev/null 2>&1 ) &&
103
+ ( yes "" | git mergetool "spaced name" >/dev/null 2>&1 ) &&
100
104
( yes "" | git mergetool subdir/file3 >/dev/null 2>&1 ) &&
101
105
( yes "d" | git mergetool file11 >/dev/null 2>&1 ) &&
102
106
( yes "d" | git mergetool file12 >/dev/null 2>&1 ) &&
@@ -126,7 +130,7 @@ test_expect_success 'mergetool on file in parent dir' '
126
130
(
127
131
cd subdir &&
128
132
( yes "" | git mergetool ../file1 >/dev/null 2>&1 ) &&
129
- ( yes "" | git mergetool ../file2 >/dev/null 2>&1 ) &&
133
+ ( yes "" | git mergetool ../file2 ../spaced\ name >/dev/null 2>&1 ) &&
130
134
( yes "d" | git mergetool ../file11 >/dev/null 2>&1 ) &&
131
135
( yes "d" | git mergetool ../file12 >/dev/null 2>&1 ) &&
132
136
( yes "l" | git mergetool ../submod >/dev/null 2>&1 ) &&
@@ -180,6 +184,24 @@ test_expect_success 'mergetool skips resolved paths when rerere is active' '
180
184
git reset --hard
181
185
'
182
186
187
+ test_expect_success ' mergetool takes partial path' '
188
+ git config rerere.enabled false &&
189
+ git checkout -b test12 branch1 &&
190
+ git submodule update -N &&
191
+ test_must_fail git merge master &&
192
+
193
+ #shouldnt need these lines
194
+ #( yes "d" | git mergetool file11 >/dev/null 2>&1 ) &&
195
+ #( yes "d" | git mergetool file12 >/dev/null 2>&1 ) &&
196
+ #( yes "l" | git mergetool submod >/dev/null 2>&1 ) &&
197
+ #( yes "" | git mergetool file1 file2 >/dev/null 2>&1 ) &&
198
+
199
+ ( yes "" | git mergetool subdir ) &&
200
+
201
+ test "$(cat subdir/file3)" = "master new sub" &&
202
+ git reset --hard
203
+ '
204
+
183
205
test_expect_success ' deleted vs modified submodule' '
184
206
git checkout -b test6 branch1 &&
185
207
git submodule update -N &&
@@ -189,7 +211,7 @@ test_expect_success 'deleted vs modified submodule' '
189
211
git checkout -b test6.a test6 &&
190
212
test_must_fail git merge master &&
191
213
test -n "$(git ls-files -u)" &&
192
- ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
214
+ ( yes "" | git mergetool file1 file2 spaced\ name subdir/file3 >/dev/null 2>&1 ) &&
193
215
( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
194
216
( yes "r" | git mergetool submod ) &&
195
217
rmdir submod && mv submod-movedaside submod &&
@@ -205,7 +227,7 @@ test_expect_success 'deleted vs modified submodule' '
205
227
git submodule update -N &&
206
228
test_must_fail git merge master &&
207
229
test -n "$(git ls-files -u)" &&
208
- ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
230
+ ( yes "" | git mergetool file1 file2 spaced\ name subdir/file3 >/dev/null 2>&1 ) &&
209
231
( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
210
232
( yes "l" | git mergetool submod ) &&
211
233
test ! -e submod &&
@@ -218,7 +240,7 @@ test_expect_success 'deleted vs modified submodule' '
218
240
git submodule update -N &&
219
241
test_must_fail git merge test6 &&
220
242
test -n "$(git ls-files -u)" &&
221
- ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
243
+ ( yes "" | git mergetool file1 file2 spaced\ name subdir/file3 >/dev/null 2>&1 ) &&
222
244
( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
223
245
( yes "r" | git mergetool submod ) &&
224
246
test ! -e submod &&
@@ -233,7 +255,7 @@ test_expect_success 'deleted vs modified submodule' '
233
255
git submodule update -N &&
234
256
test_must_fail git merge test6 &&
235
257
test -n "$(git ls-files -u)" &&
236
- ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
258
+ ( yes "" | git mergetool file1 file2 spaced\ name subdir/file3 >/dev/null 2>&1 ) &&
237
259
( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
238
260
( yes "l" | git mergetool submod ) &&
239
261
test "$(cat submod/bar)" = "master submodule" &&
@@ -256,7 +278,7 @@ test_expect_success 'file vs modified submodule' '
256
278
git checkout -b test7.a branch1 &&
257
279
test_must_fail git merge master &&
258
280
test -n "$(git ls-files -u)" &&
259
- ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
281
+ ( yes "" | git mergetool file1 file2 spaced\ name subdir/file3 >/dev/null 2>&1 ) &&
260
282
( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
261
283
( yes "r" | git mergetool submod ) &&
262
284
rmdir submod && mv submod-movedaside submod &&
@@ -271,7 +293,7 @@ test_expect_success 'file vs modified submodule' '
271
293
git checkout -b test7.b test7 &&
272
294
test_must_fail git merge master &&
273
295
test -n "$(git ls-files -u)" &&
274
- ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
296
+ ( yes "" | git mergetool file1 file2 spaced\ name subdir/file3 >/dev/null 2>&1 ) &&
275
297
( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
276
298
( yes "l" | git mergetool submod ) &&
277
299
git submodule update -N &&
@@ -286,7 +308,7 @@ test_expect_success 'file vs modified submodule' '
286
308
git submodule update -N &&
287
309
test_must_fail git merge test7 &&
288
310
test -n "$(git ls-files -u)" &&
289
- ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
311
+ ( yes "" | git mergetool file1 file2 spaced\ name subdir/file3 >/dev/null 2>&1 ) &&
290
312
( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
291
313
( yes "r" | git mergetool submod ) &&
292
314
test -d submod.orig &&
@@ -301,7 +323,7 @@ test_expect_success 'file vs modified submodule' '
301
323
git submodule update -N &&
302
324
test_must_fail git merge test7 &&
303
325
test -n "$(git ls-files -u)" &&
304
- ( yes "" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&
326
+ ( yes "" | git mergetool file1 file2 spaced\ name subdir/file3 >/dev/null 2>&1 ) &&
305
327
( yes "d" | git mergetool file11 file12 >/dev/null 2>&1 ) &&
306
328
( yes "l" | git mergetool submod ) &&
307
329
test "$(cat submod/bar)" = "master submodule" &&
@@ -388,7 +410,7 @@ test_expect_success 'directory vs modified submodule' '
388
410
test "$(cat submod/file16)" = "not a submodule" &&
389
411
rm -rf submod.orig &&
390
412
391
- git reset --hard &&
413
+ git reset --hard >/dev/null 2>&1 &&
392
414
test_must_fail git merge master &&
393
415
test -n "$(git ls-files -u)" &&
394
416
test ! -e submod.orig &&
@@ -400,7 +422,7 @@ test_expect_success 'directory vs modified submodule' '
400
422
( cd submod && git clean -f && git reset --hard ) &&
401
423
git submodule update -N &&
402
424
test "$(cat submod/bar)" = "master submodule" &&
403
- git reset --hard && rm -rf submod-movedaside &&
425
+ git reset --hard >/dev/null 2>&1 && rm -rf submod-movedaside &&
404
426
405
427
git checkout -b test11.c master &&
406
428
git submodule update -N &&
@@ -410,15 +432,15 @@ test_expect_success 'directory vs modified submodule' '
410
432
git submodule update -N &&
411
433
test "$(cat submod/bar)" = "master submodule" &&
412
434
413
- git reset --hard &&
435
+ git reset --hard >/dev/null 2>&1 &&
414
436
git submodule update -N &&
415
437
test_must_fail git merge test11 &&
416
438
test -n "$(git ls-files -u)" &&
417
439
test ! -e submod.orig &&
418
440
( yes "r" | git mergetool submod ) &&
419
441
test "$(cat submod/file16)" = "not a submodule" &&
420
442
421
- git reset --hard master &&
443
+ git reset --hard master >/dev/null 2>&1 &&
422
444
( cd submod && git clean -f && git reset --hard ) &&
423
445
git submodule update -N
424
446
'
0 commit comments