t7102: abstract away SHA-1-specific constants
Adjust the test so that it computes variables for object IDs instead of using hard-coded hashes. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Reviewed-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
brian m. carlson committed
Jul 29, 2020 at 23:14 UTC
d62607d1e95bd0df237de125270dce4037e256c6
1 file changed
+53
-40
t/t7102-reset.sh
+53
-40
@@ -37,17 +37,23 @@ test_expect_success 'creating initial files and commits' '
37
38
echo "2nd line 1st file" >>first &&
39
git commit -a -m "modify 1st file" &&
40
+ head5p2=$(git rev-parse --verify HEAD) &&
41
+ head5p2f=$(git rev-parse --short HEAD:first) &&
42
43
git rm first &&
44
git mv second secondfile &&
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) &&
48
49
echo "1st line 2nd file" >secondfile &&
50
echo "2nd line 2nd file" >>secondfile &&
51
# "git commit -m" would break MinGW, as Windows refuse to pass
52
# $test_encoding encoded parameter to git.
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)
57
'
58
# git log --pretty=oneline # to see those SHA1 involved
59
@@ -94,7 +100,7 @@ test_expect_success 'giving a non existing revision should fail' '
100
101
test_expect_success 'reset --soft with unmerged index should fail' '
102
touch .git/MERGE_HEAD &&
97
- echo "100644 44c5b5884550c17758737edcced463447b91d42b 1 un" |
103
+ echo "100644 $head5sl 1 un" |
104
git update-index --index-info &&
105
test_must_fail git reset --soft HEAD &&
106
rm .git/MERGE_HEAD &&
@@ -192,7 +198,7 @@ test_expect_success \
198
>.diff_expect
199
cat >.cached_expect <<EOF
200
diff --git a/secondfile b/secondfile
195
-index 1bbba79..44c5b58 100644
201
+index $head5p1s..$head5s 100644
202
--- a/secondfile
203
+++ b/secondfile
204
@@ -1 +1,2 @@
@@ -207,7 +213,7 @@ secondfile:
213
EOF
214
test_expect_success '--soft reset only should show changes in diff --cached' '
215
git reset --soft HEAD^ &&
210
- check_changes d1a4bc3abce4829628ae2dcb0d60ef3d1a78b1c4 &&
216
+ check_changes $head5p1 &&
217
test "$(git rev-parse ORIG_HEAD)" = \
218
$head5
219
'
@@ -242,7 +248,7 @@ EOF
248
test_expect_success \
249
'--hard reset should change the files and undo commits permanently' '
250
git reset --hard HEAD~2 &&
245
- check_changes ddaefe00f1da16864591c61fdc7adb5d7cd6b74e &&
251
+ check_changes $head5p2 &&
252
test "$(git rev-parse ORIG_HEAD)" = \
253
$head4
254
'
@@ -251,7 +257,7 @@ test_expect_success \
257
cat >.cached_expect <<EOF
258
diff --git a/first b/first
259
deleted file mode 100644
254
-index 8206c22..0000000
260
+index $head5p2f..0000000
261
--- a/first
262
+++ /dev/null
263
@@ -1,2 +0,0 @@
@@ -259,14 +265,14 @@ index 8206c22..0000000
265
-2nd line 1st file
266
diff --git a/second b/second
267
deleted file mode 100644
262
-index 1bbba79..0000000
268
+index $head5p1s..0000000
269
--- a/second
270
+++ /dev/null
271
@@ -1 +0,0 @@
272
-2nd file
273
diff --git a/secondfile b/secondfile
274
new file mode 100644
269
-index 0000000..44c5b58
275
+index 0000000..$head5s
276
--- /dev/null
277
+++ b/secondfile
278
@@ -0,0 +1,2 @@
@@ -286,13 +292,13 @@ test_expect_success \
292
echo "1st line 2nd file" >secondfile &&
293
echo "2nd line 2nd file" >>secondfile &&
294
git add secondfile &&
289
- check_changes ddaefe00f1da16864591c61fdc7adb5d7cd6b74e
295
+ check_changes $head5p2
296
'
297
298
cat >.diff_expect <<EOF
299
diff --git a/first b/first
300
deleted file mode 100644
295
-index 8206c22..0000000
301
+index $head5p2f..0000000
302
--- a/first
303
+++ /dev/null
304
@@ -1,2 +0,0 @@
@@ -300,7 +306,7 @@ index 8206c22..0000000
306
-2nd line 1st file
307
diff --git a/second b/second
308
deleted file mode 100644
303
-index 1bbba79..0000000
309
+index $head5p1s..0000000
310
--- a/second
311
+++ /dev/null
312
@@ -1 +0,0 @@
@@ -314,9 +320,8 @@ secondfile:
320
EOF
321
test_expect_success '--mixed reset to HEAD should unadd the files' '
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
325
'
326
327
>.diff_expect
@@ -328,7 +333,7 @@ secondfile:
333
EOF
334
test_expect_success 'redoing the last two commits should succeed' '
335
git add secondfile &&
331
- git reset --hard ddaefe00f1da16864591c61fdc7adb5d7cd6b74e &&
336
+ git reset --hard $head5p2 &&
337
338
git rm first &&
339
git mv second secondfile &&
@@ -389,47 +394,55 @@ test_expect_success \
394
check_changes $head5
395
'
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
397
test_expect_success 'test --mixed <paths>' '
398
echo 1 > file1 &&
399
echo 2 > file2 &&
400
git add file1 file2 &&
401
test_tick &&
402
git commit -m files &&
403
+ before1=$(git rev-parse --short HEAD:file1) &&
404
+ before2=$(git rev-parse --short HEAD:file2) &&
405
git rm file2 &&
406
echo 3 > file3 &&
407
echo 4 > file4 &&
408
echo 5 > file1 &&
409
+ after1=$(git rev-parse --short $(git hash-object file1)) &&
410
+ after4=$(git rev-parse --short $(git hash-object file4)) &&
411
git add file1 file3 file4 &&
412
git reset HEAD -- file1 file2 file3 &&
413
test_must_fail git diff --quiet &&
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
+
433
test_cmp expect output &&
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
+
446
test_cmp cached_expect output
447
'
448