@@ -37,43 +37,47 @@ head1=$(add_file sm1 foo1 foo2)
37
37
test_expect_success ' added submodule' "
38
38
git add sm1 &&
39
39
git diff-index -p --submodule=log HEAD >actual &&
40
- diff actual - <<-EOF
40
+ cat >expected <<-EOF &&
41
41
Submodule sm1 0000000...$head1 (new submodule)
42
42
EOF
43
+ test_cmp expected actual
43
44
"
44
45
45
46
commit_file sm1 &&
46
47
head2=$( add_file sm1 foo3)
47
48
48
49
test_expect_success ' modified submodule(forward)' "
49
50
git diff-index -p --submodule=log HEAD >actual &&
50
- diff actual - <<-EOF
51
+ cat >expected <<-EOF &&
51
52
Submodule sm1 $head1 ..$head2 :
52
53
> Add foo3
53
54
EOF
55
+ test_cmp expected actual
54
56
"
55
57
56
58
test_expect_success ' modified submodule(forward)' "
57
59
git diff --submodule=log >actual &&
58
- diff actual - <<-EOF
60
+ cat >expected <<-EOF &&
59
61
Submodule sm1 $head1 ..$head2 :
60
62
> Add foo3
61
63
EOF
64
+ test_cmp expected actual
62
65
"
63
66
64
67
test_expect_success ' modified submodule(forward) --submodule' "
65
68
git diff --submodule >actual &&
66
- diff actual - <<-EOF
69
+ cat >expected <<-EOF &&
67
70
Submodule sm1 $head1 ..$head2 :
68
71
> Add foo3
69
72
EOF
73
+ test_cmp expected actual
70
74
"
71
75
72
76
fullhead1=$( cd sm1; git rev-list --max-count=1 $head1 )
73
77
fullhead2=$( cd sm1; git rev-list --max-count=1 $head2 )
74
78
test_expect_success ' modified submodule(forward) --submodule=short' "
75
79
git diff --submodule=short >actual &&
76
- diff actual - <<-EOF
80
+ cat >expected <<-EOF &&
77
81
diff --git a/sm1 b/sm1
78
82
index $head1 ..$head2 160000
79
83
--- a/sm1
@@ -82,6 +86,7 @@ index $head1..$head2 160000
82
86
-Subproject commit $fullhead1
83
87
+Subproject commit $fullhead2
84
88
EOF
89
+ test_cmp expected actual
85
90
"
86
91
87
92
commit_file sm1 &&
@@ -93,24 +98,26 @@ head3=$(
93
98
94
99
test_expect_success ' modified submodule(backward)' "
95
100
git diff-index -p --submodule=log HEAD >actual &&
96
- diff actual - <<-EOF
101
+ cat >expected <<-EOF &&
97
102
Submodule sm1 $head2 ..$head3 (rewind):
98
103
< Add foo3
99
104
< Add foo2
100
105
EOF
106
+ test_cmp expected actual
101
107
"
102
108
103
109
head4=$( add_file sm1 foo4 foo5) &&
104
110
head4_full=$( GIT_DIR=sm1/.git git rev-parse --verify HEAD)
105
111
test_expect_success ' modified submodule(backward and forward)' "
106
112
git diff-index -p --submodule=log HEAD >actual &&
107
- diff actual - <<-EOF
113
+ cat >expected <<-EOF &&
108
114
Submodule sm1 $head2 ...$head4 :
109
115
> Add foo5
110
116
> Add foo4
111
117
< Add foo3
112
118
< Add foo2
113
119
EOF
120
+ test_cmp expected actual
114
121
"
115
122
116
123
commit_file sm1 &&
@@ -123,7 +130,7 @@ mv sm1-bak sm1
123
130
124
131
test_expect_success ' typechanged submodule(submodule->blob), --cached' "
125
132
git diff --submodule=log --cached >actual &&
126
- diff actual - <<-EOF
133
+ cat >expected <<-EOF &&
127
134
Submodule sm1 41fbea9...0000000 (submodule deleted)
128
135
diff --git a/sm1 b/sm1
129
136
new file mode 100644
@@ -133,11 +140,12 @@ index 0000000..9da5fb8
133
140
@@ -0,0 +1 @@
134
141
+sm1
135
142
EOF
143
+ test_cmp expected actual
136
144
"
137
145
138
146
test_expect_success ' typechanged submodule(submodule->blob)' "
139
147
git diff --submodule=log >actual &&
140
- diff actual - <<-EOF
148
+ cat >expected <<-EOF &&
141
149
diff --git a/sm1 b/sm1
142
150
deleted file mode 100644
143
151
index 9da5fb8..0000000
@@ -147,13 +155,14 @@ index 9da5fb8..0000000
147
155
-sm1
148
156
Submodule sm1 0000000...$head4 (new submodule)
149
157
EOF
158
+ test_cmp expected actual
150
159
"
151
160
152
161
rm -rf sm1 &&
153
162
git checkout-index sm1
154
163
test_expect_success ' typechanged submodule(submodule->blob)' "
155
164
git diff-index -p --submodule=log HEAD >actual &&
156
- diff actual - <<-EOF
165
+ cat >expected <<-EOF &&
157
166
Submodule sm1 $head4 ...0000000 (submodule deleted)
158
167
diff --git a/sm1 b/sm1
159
168
new file mode 100644
@@ -163,6 +172,7 @@ index 0000000..$head5
163
172
@@ -0,0 +1 @@
164
173
+sm1
165
174
EOF
175
+ test_cmp expected actual
166
176
"
167
177
168
178
rm -f sm1 &&
@@ -171,15 +181,16 @@ head6=$(add_file sm1 foo6 foo7)
171
181
fullhead6=$( cd sm1; git rev-list --max-count=1 $head6 )
172
182
test_expect_success ' nonexistent commit' "
173
183
git diff-index -p --submodule=log HEAD >actual &&
174
- diff actual - <<-EOF
184
+ cat >expected <<-EOF &&
175
185
Submodule sm1 $head4 ...$head6 (commits not present)
176
186
EOF
187
+ test_cmp expected actual
177
188
"
178
189
179
190
commit_file
180
191
test_expect_success ' typechanged submodule(blob->submodule)' "
181
192
git diff-index -p --submodule=log HEAD >actual &&
182
- diff actual - <<-EOF
193
+ cat >expected <<-EOF &&
183
194
diff --git a/sm1 b/sm1
184
195
deleted file mode 100644
185
196
index $head5 ..0000000
@@ -189,21 +200,24 @@ index $head5..0000000
189
200
-sm1
190
201
Submodule sm1 0000000...$head6 (new submodule)
191
202
EOF
203
+ test_cmp expected actual
192
204
"
193
205
194
206
commit_file sm1 &&
195
207
test_expect_success ' submodule is up to date' "
196
208
git diff-index -p --submodule=log HEAD >actual &&
197
- diff actual - <<-EOF
209
+ cat >expected <<-EOF &&
198
210
EOF
211
+ test_cmp expected actual
199
212
"
200
213
201
214
test_expect_success ' submodule contains untracked content' "
202
215
echo new > sm1/new-file &&
203
216
git diff-index -p --submodule=log HEAD >actual &&
204
- diff actual - <<-EOF
217
+ cat >expected <<-EOF &&
205
218
Submodule sm1 contains untracked content
206
219
EOF
220
+ test_cmp expected actual
207
221
"
208
222
209
223
test_expect_success ' submodule contains untracked content (untracked ignored)' "
@@ -224,18 +238,20 @@ test_expect_success 'submodule contains untracked content (all ignored)' "
224
238
test_expect_success ' submodule contains untracked and modifed content' "
225
239
echo new > sm1/foo6 &&
226
240
git diff-index -p --submodule=log HEAD >actual &&
227
- diff actual - <<-EOF
241
+ cat >expected <<-EOF &&
228
242
Submodule sm1 contains untracked content
229
243
Submodule sm1 contains modified content
230
244
EOF
245
+ test_cmp expected actual
231
246
"
232
247
233
248
test_expect_success ' submodule contains untracked and modifed content (untracked ignored)' "
234
249
echo new > sm1/foo6 &&
235
250
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
236
- diff actual - <<-EOF
251
+ cat >expected <<-EOF &&
237
252
Submodule sm1 contains modified content
238
253
EOF
254
+ test_cmp expected actual
239
255
"
240
256
241
257
test_expect_success ' submodule contains untracked and modifed content (dirty ignored)' "
@@ -253,45 +269,50 @@ test_expect_success 'submodule contains untracked and modifed content (all ignor
253
269
test_expect_success ' submodule contains modifed content' "
254
270
rm -f sm1/new-file &&
255
271
git diff-index -p --submodule=log HEAD >actual &&
256
- diff actual - <<-EOF
272
+ cat >expected <<-EOF &&
257
273
Submodule sm1 contains modified content
258
274
EOF
275
+ test_cmp expected actual
259
276
"
260
277
261
278
(cd sm1; git commit -mchange foo6 > /dev/null) &&
262
279
head8=$( cd sm1; git rev-parse --verify HEAD | cut -c1-7) &&
263
280
test_expect_success ' submodule is modified' "
264
281
git diff-index -p --submodule=log HEAD >actual &&
265
- diff actual - <<-EOF
282
+ cat >expected <<-EOF &&
266
283
Submodule sm1 $head6 ..$head8 :
267
284
> change
268
285
EOF
286
+ test_cmp expected actual
269
287
"
270
288
271
289
test_expect_success ' modified submodule contains untracked content' "
272
290
echo new > sm1/new-file &&
273
291
git diff-index -p --submodule=log HEAD >actual &&
274
- diff actual - <<-EOF
292
+ cat >expected <<-EOF &&
275
293
Submodule sm1 contains untracked content
276
294
Submodule sm1 $head6 ..$head8 :
277
295
> change
278
296
EOF
297
+ test_cmp expected actual
279
298
"
280
299
281
300
test_expect_success ' modified submodule contains untracked content (untracked ignored)' "
282
301
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
283
- diff actual - <<-EOF
302
+ cat >expected <<-EOF &&
284
303
Submodule sm1 $head6 ..$head8 :
285
304
> change
286
305
EOF
306
+ test_cmp expected actual
287
307
"
288
308
289
309
test_expect_success ' modified submodule contains untracked content (dirty ignored)' "
290
310
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
291
- diff actual - <<-EOF
311
+ cat >expected <<-EOF &&
292
312
Submodule sm1 $head6 ..$head8 :
293
313
> change
294
314
EOF
315
+ test_cmp expected actual
295
316
"
296
317
297
318
test_expect_success ' modified submodule contains untracked content (all ignored)' "
@@ -302,31 +323,34 @@ test_expect_success 'modified submodule contains untracked content (all ignored)
302
323
test_expect_success ' modified submodule contains untracked and modifed content' "
303
324
echo modification >> sm1/foo6 &&
304
325
git diff-index -p --submodule=log HEAD >actual &&
305
- diff actual - <<-EOF
326
+ cat >expected <<-EOF &&
306
327
Submodule sm1 contains untracked content
307
328
Submodule sm1 contains modified content
308
329
Submodule sm1 $head6 ..$head8 :
309
330
> change
310
331
EOF
332
+ test_cmp expected actual
311
333
"
312
334
313
335
test_expect_success ' modified submodule contains untracked and modifed content (untracked ignored)' "
314
336
echo modification >> sm1/foo6 &&
315
337
git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
316
- diff actual - <<-EOF
338
+ cat >expected <<-EOF &&
317
339
Submodule sm1 contains modified content
318
340
Submodule sm1 $head6 ..$head8 :
319
341
> change
320
342
EOF
343
+ test_cmp expected actual
321
344
"
322
345
323
346
test_expect_success ' modified submodule contains untracked and modifed content (dirty ignored)' "
324
347
echo modification >> sm1/foo6 &&
325
348
git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
326
- diff actual - <<-EOF
349
+ cat >expected <<-EOF &&
327
350
Submodule sm1 $head6 ..$head8 :
328
351
> change
329
352
EOF
353
+ test_cmp expected actual
330
354
"
331
355
332
356
test_expect_success ' modified submodule contains untracked and modifed content (all ignored)' "
@@ -338,19 +362,21 @@ test_expect_success 'modified submodule contains untracked and modifed content (
338
362
test_expect_success ' modified submodule contains modifed content' "
339
363
rm -f sm1/new-file &&
340
364
git diff-index -p --submodule=log HEAD >actual &&
341
- diff actual - <<-EOF
365
+ cat >expected <<-EOF &&
342
366
Submodule sm1 contains modified content
343
367
Submodule sm1 $head6 ..$head8 :
344
368
> change
345
369
EOF
370
+ test_cmp expected actual
346
371
"
347
372
348
373
rm -rf sm1
349
374
test_expect_success ' deleted submodule' "
350
375
git diff-index -p --submodule=log HEAD >actual &&
351
- diff actual - <<-EOF
376
+ cat >expected <<-EOF &&
352
377
Submodule sm1 $head6 ...0000000 (submodule deleted)
353
378
EOF
379
+ test_cmp expected actual
354
380
"
355
381
356
382
test_create_repo sm2 &&
@@ -359,41 +385,45 @@ git add sm2
359
385
360
386
test_expect_success ' multiple submodules' "
361
387
git diff-index -p --submodule=log HEAD >actual &&
362
- diff actual - <<-EOF
388
+ cat >expected <<-EOF &&
363
389
Submodule sm1 $head6 ...0000000 (submodule deleted)
364
390
Submodule sm2 0000000...$head7 (new submodule)
365
391
EOF
392
+ test_cmp expected actual
366
393
"
367
394
368
395
test_expect_success ' path filter' "
369
396
git diff-index -p --submodule=log HEAD sm2 >actual &&
370
- diff actual - <<-EOF
397
+ cat >expected <<-EOF &&
371
398
Submodule sm2 0000000...$head7 (new submodule)
372
399
EOF
400
+ test_cmp expected actual
373
401
"
374
402
375
403
commit_file sm2
376
404
test_expect_success ' given commit' "
377
405
git diff-index -p --submodule=log HEAD^ >actual &&
378
- diff actual - <<-EOF
406
+ cat >expected <<-EOF &&
379
407
Submodule sm1 $head6 ...0000000 (submodule deleted)
380
408
Submodule sm2 0000000...$head7 (new submodule)
381
409
EOF
410
+ test_cmp expected actual
382
411
"
383
412
384
413
test_expect_success ' given commit --submodule' "
385
414
git diff-index -p --submodule HEAD^ >actual &&
386
- diff actual - <<-EOF
415
+ cat >expected <<-EOF &&
387
416
Submodule sm1 $head6 ...0000000 (submodule deleted)
388
417
Submodule sm2 0000000...$head7 (new submodule)
389
418
EOF
419
+ test_cmp expected actual
390
420
"
391
421
392
422
fullhead7=$( cd sm2; git rev-list --max-count=1 $head7 )
393
423
394
424
test_expect_success ' given commit --submodule=short' "
395
425
git diff-index -p --submodule=short HEAD^ >actual &&
396
- diff actual - <<-EOF
426
+ cat >expected <<-EOF &&
397
427
diff --git a/sm1 b/sm1
398
428
deleted file mode 160000
399
429
index $head6 ..0000000
@@ -409,6 +439,7 @@ index 0000000..$head7
409
439
@@ -0,0 +1 @@
410
440
+Subproject commit $fullhead7
411
441
EOF
442
+ test_cmp expected actual
412
443
"
413
444
414
445
test_expect_success ' setup .git file for sm2' '
@@ -420,10 +451,11 @@ test_expect_success 'setup .git file for sm2' '
420
451
421
452
test_expect_success ' diff --submodule with .git file' '
422
453
git diff --submodule HEAD^ >actual &&
423
- diff actual - <<-EOF
454
+ cat >expected <<-EOF &&
424
455
Submodule sm1 $head6...0000000 (submodule deleted)
425
456
Submodule sm2 0000000...$head7 (new submodule)
426
457
EOF
458
+ test_cmp expected actual
427
459
'
428
460
429
461
test_done
0 commit comments