@@ -37,17 +37,23 @@ test_expect_success 'creating initial files and commits' '
37
37
38
38
echo "2nd line 1st file" >>first &&
39
39
git commit -a -m "modify 1st file" &&
40
+ head5p2=$(git rev-parse --verify HEAD) &&
41
+ head5p2f=$(git rev-parse --short HEAD:first) &&
40
42
41
43
git rm first &&
42
44
git mv second secondfile &&
43
45
git commit -a -m "remove 1st and rename 2nd" &&
46
+ head5p1=$(git rev-parse --verify HEAD) &&
47
+ head5p1s=$(git rev-parse --short HEAD:secondfile) &&
44
48
45
49
echo "1st line 2nd file" >secondfile &&
46
50
echo "2nd line 2nd file" >>secondfile &&
47
51
# "git commit -m" would break MinGW, as Windows refuse to pass
48
52
# $test_encoding encoded parameter to git.
49
53
commit_msg $test_encoding | git -c "i18n.commitEncoding=$test_encoding" commit -a -F - &&
50
- head5=$(git rev-parse --verify HEAD)
54
+ head5=$(git rev-parse --verify HEAD) &&
55
+ head5s=$(git rev-parse --short HEAD:secondfile) &&
56
+ head5sl=$(git rev-parse HEAD:secondfile)
51
57
'
52
58
# git log --pretty=oneline # to see those SHA1 involved
53
59
@@ -94,7 +100,7 @@ test_expect_success 'giving a non existing revision should fail' '
94
100
95
101
test_expect_success ' reset --soft with unmerged index should fail' '
96
102
touch .git/MERGE_HEAD &&
97
- echo "100644 44c5b5884550c17758737edcced463447b91d42b 1 un" |
103
+ echo "100644 $head5sl 1 un" |
98
104
git update-index --index-info &&
99
105
test_must_fail git reset --soft HEAD &&
100
106
rm .git/MERGE_HEAD &&
@@ -192,7 +198,7 @@ test_expect_success \
192
198
> .diff_expect
193
199
cat > .cached_expect << EOF
194
200
diff --git a/secondfile b/secondfile
195
- index 1bbba79..44c5b58 100644
201
+ index $head5p1s .. $head5s 100644
196
202
--- a/secondfile
197
203
+++ b/secondfile
198
204
@@ -1 +1,2 @@
@@ -207,7 +213,7 @@ secondfile:
207
213
EOF
208
214
test_expect_success ' --soft reset only should show changes in diff --cached' '
209
215
git reset --soft HEAD^ &&
210
- check_changes d1a4bc3abce4829628ae2dcb0d60ef3d1a78b1c4 &&
216
+ check_changes $head5p1 &&
211
217
test "$(git rev-parse ORIG_HEAD)" = \
212
218
$head5
213
219
'
242
248
test_expect_success \
243
249
' --hard reset should change the files and undo commits permanently' '
244
250
git reset --hard HEAD~2 &&
245
- check_changes ddaefe00f1da16864591c61fdc7adb5d7cd6b74e &&
251
+ check_changes $head5p2 &&
246
252
test "$(git rev-parse ORIG_HEAD)" = \
247
253
$head4
248
254
'
@@ -251,22 +257,22 @@ test_expect_success \
251
257
cat > .cached_expect << EOF
252
258
diff --git a/first b/first
253
259
deleted file mode 100644
254
- index 8206c22 ..0000000
260
+ index $head5p2f ..0000000
255
261
--- a/first
256
262
+++ /dev/null
257
263
@@ -1,2 +0,0 @@
258
264
-1st file
259
265
-2nd line 1st file
260
266
diff --git a/second b/second
261
267
deleted file mode 100644
262
- index 1bbba79 ..0000000
268
+ index $head5p1s ..0000000
263
269
--- a/second
264
270
+++ /dev/null
265
271
@@ -1 +0,0 @@
266
272
-2nd file
267
273
diff --git a/secondfile b/secondfile
268
274
new file mode 100644
269
- index 0000000..44c5b58
275
+ index 0000000..$head5s
270
276
--- /dev/null
271
277
+++ b/secondfile
272
278
@@ -0,0 +1,2 @@
@@ -286,21 +292,21 @@ test_expect_success \
286
292
echo "1st line 2nd file" >secondfile &&
287
293
echo "2nd line 2nd file" >>secondfile &&
288
294
git add secondfile &&
289
- check_changes ddaefe00f1da16864591c61fdc7adb5d7cd6b74e
295
+ check_changes $head5p2
290
296
'
291
297
292
298
cat > .diff_expect << EOF
293
299
diff --git a/first b/first
294
300
deleted file mode 100644
295
- index 8206c22 ..0000000
301
+ index $head5p2f ..0000000
296
302
--- a/first
297
303
+++ /dev/null
298
304
@@ -1,2 +0,0 @@
299
305
-1st file
300
306
-2nd line 1st file
301
307
diff --git a/second b/second
302
308
deleted file mode 100644
303
- index 1bbba79 ..0000000
309
+ index $head5p1s ..0000000
304
310
--- a/second
305
311
+++ /dev/null
306
312
@@ -1 +0,0 @@
@@ -314,9 +320,8 @@ secondfile:
314
320
EOF
315
321
test_expect_success ' --mixed reset to HEAD should unadd the files' '
316
322
git reset &&
317
- check_changes ddaefe00f1da16864591c61fdc7adb5d7cd6b74e &&
318
- test "$(git rev-parse ORIG_HEAD)" = \
319
- ddaefe00f1da16864591c61fdc7adb5d7cd6b74e
323
+ check_changes $head5p2 &&
324
+ test "$(git rev-parse ORIG_HEAD)" = $head5p2
320
325
'
321
326
322
327
> .diff_expect
@@ -328,7 +333,7 @@ secondfile:
328
333
EOF
329
334
test_expect_success ' redoing the last two commits should succeed' '
330
335
git add secondfile &&
331
- git reset --hard ddaefe00f1da16864591c61fdc7adb5d7cd6b74e &&
336
+ git reset --hard $head5p2 &&
332
337
333
338
git rm first &&
334
339
git mv second secondfile &&
@@ -389,47 +394,55 @@ test_expect_success \
389
394
check_changes $head5
390
395
'
391
396
392
- cat > expect << EOF
393
- diff --git a/file1 b/file1
394
- index d00491f..7ed6ff8 100644
395
- --- a/file1
396
- +++ b/file1
397
- @@ -1 +1 @@
398
- -1
399
- +5
400
- diff --git a/file2 b/file2
401
- deleted file mode 100644
402
- index 0cfbf08..0000000
403
- --- a/file2
404
- +++ /dev/null
405
- @@ -1 +0,0 @@
406
- -2
407
- EOF
408
- cat > cached_expect << EOF
409
- diff --git a/file4 b/file4
410
- new file mode 100644
411
- index 0000000..b8626c4
412
- --- /dev/null
413
- +++ b/file4
414
- @@ -0,0 +1 @@
415
- +4
416
- EOF
417
397
test_expect_success ' test --mixed <paths>' '
418
398
echo 1 > file1 &&
419
399
echo 2 > file2 &&
420
400
git add file1 file2 &&
421
401
test_tick &&
422
402
git commit -m files &&
403
+ before1=$(git rev-parse --short HEAD:file1) &&
404
+ before2=$(git rev-parse --short HEAD:file2) &&
423
405
git rm file2 &&
424
406
echo 3 > file3 &&
425
407
echo 4 > file4 &&
426
408
echo 5 > file1 &&
409
+ after1=$(git rev-parse --short $(git hash-object file1)) &&
410
+ after4=$(git rev-parse --short $(git hash-object file4)) &&
427
411
git add file1 file3 file4 &&
428
412
git reset HEAD -- file1 file2 file3 &&
429
413
test_must_fail git diff --quiet &&
430
414
git diff > output &&
415
+
416
+ cat > expect <<-EOF &&
417
+ diff --git a/file1 b/file1
418
+ index $before1..$after1 100644
419
+ --- a/file1
420
+ +++ b/file1
421
+ @@ -1 +1 @@
422
+ -1
423
+ +5
424
+ diff --git a/file2 b/file2
425
+ deleted file mode 100644
426
+ index $before2..0000000
427
+ --- a/file2
428
+ +++ /dev/null
429
+ @@ -1 +0,0 @@
430
+ -2
431
+ EOF
432
+
431
433
test_cmp expect output &&
432
434
git diff --cached > output &&
435
+
436
+ cat > cached_expect <<-EOF &&
437
+ diff --git a/file4 b/file4
438
+ new file mode 100644
439
+ index 0000000..$after4
440
+ --- /dev/null
441
+ +++ b/file4
442
+ @@ -0,0 +1 @@
443
+ +4
444
+ EOF
445
+
433
446
test_cmp cached_expect output
434
447
'
435
448
0 commit comments