@@ -8,84 +8,99 @@ test_description='read-tree -u --reset'
88# two-tree test
99
1010test_expect_success ' setup' '
11- git init &&
12- mkdir df &&
13- echo content >df/file &&
14- git add df/file &&
15- git commit -m one &&
16- git ls-files >expect &&
17- rm -rf df &&
18- echo content >df &&
19- git add df &&
20- echo content >new &&
21- git add new &&
22- git commit -m two
11+ git init &&
12+ mkdir df &&
13+ echo content >df/file &&
14+ git add df/file &&
15+ git commit -m one &&
16+ git ls-files >expect &&
17+ rm -rf df &&
18+ echo content >df &&
19+ git add df &&
20+ echo content >new &&
21+ git add new &&
22+ git commit -m two
2323'
2424
2525test_expect_success ' reset should work' '
26- read_tree_u_must_succeed -u --reset HEAD^ &&
27- git ls-files >actual &&
28- test_cmp expect actual
26+ read_tree_u_must_succeed -u --reset HEAD^ &&
27+ git ls-files >actual &&
28+ test_cmp expect actual
2929'
3030
3131test_expect_success ' reset should remove remnants from a failed merge' '
32- read_tree_u_must_succeed --reset -u HEAD &&
33- git ls-files -s >expect &&
34- sha1=$(git rev-parse :new) &&
35- (
36- echo "100644 $sha1 1 old"
37- echo "100644 $sha1 3 old"
38- ) | git update-index --index-info &&
39- >old &&
40- git ls-files -s &&
41- read_tree_u_must_succeed --reset -u HEAD &&
42- git ls-files -s >actual &&
43- ! test -f old
32+ read_tree_u_must_succeed --reset -u HEAD &&
33+ git ls-files -s >expect &&
34+ sha1=$(git rev-parse :new) &&
35+ (
36+ echo "100644 $sha1 1 old"
37+ echo "100644 $sha1 3 old"
38+ ) | git update-index --index-info &&
39+ >old &&
40+ git ls-files -s &&
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 ' two-way reset should remove remnants too' '
47+ read_tree_u_must_succeed --reset -u HEAD &&
48+ git ls-files -s >expect &&
49+ sha1=$(git rev-parse :new) &&
50+ (
51+ echo "100644 $sha1 1 old"
52+ echo "100644 $sha1 3 old"
53+ ) | git update-index --index-info &&
54+ >old &&
55+ git ls-files -s &&
56+ read_tree_u_must_succeed --reset -u HEAD HEAD &&
57+ git ls-files -s >actual &&
58+ ! test -f old
4459'
4560
4661test_expect_success ' Porcelain reset should remove remnants too' '
47- read_tree_u_must_succeed --reset -u HEAD &&
48- git ls-files -s >expect &&
49- sha1=$(git rev-parse :new) &&
50- (
51- echo "100644 $sha1 1 old"
52- echo "100644 $sha1 3 old"
53- ) | git update-index --index-info &&
54- >old &&
55- git ls-files -s &&
56- git reset --hard &&
57- git ls-files -s >actual &&
58- ! test -f old
62+ read_tree_u_must_succeed --reset -u HEAD &&
63+ git ls-files -s >expect &&
64+ sha1=$(git rev-parse :new) &&
65+ (
66+ echo "100644 $sha1 1 old"
67+ echo "100644 $sha1 3 old"
68+ ) | git update-index --index-info &&
69+ >old &&
70+ git ls-files -s &&
71+ git reset --hard &&
72+ git ls-files -s >actual &&
73+ ! test -f old
5974'
6075
6176test_expect_success ' Porcelain checkout -f should remove remnants too' '
62- read_tree_u_must_succeed --reset -u HEAD &&
63- git ls-files -s >expect &&
64- sha1=$(git rev-parse :new) &&
65- (
66- echo "100644 $sha1 1 old"
67- echo "100644 $sha1 3 old"
68- ) | git update-index --index-info &&
69- >old &&
70- git ls-files -s &&
71- git checkout -f &&
72- git ls-files -s >actual &&
73- ! test -f old
77+ read_tree_u_must_succeed --reset -u HEAD &&
78+ git ls-files -s >expect &&
79+ sha1=$(git rev-parse :new) &&
80+ (
81+ echo "100644 $sha1 1 old"
82+ echo "100644 $sha1 3 old"
83+ ) | git update-index --index-info &&
84+ >old &&
85+ git ls-files -s &&
86+ git checkout -f &&
87+ git ls-files -s >actual &&
88+ ! test -f old
7489'
7590
7691test_expect_success ' Porcelain checkout -f HEAD should remove remnants too' '
77- read_tree_u_must_succeed --reset -u HEAD &&
78- git ls-files -s >expect &&
79- sha1=$(git rev-parse :new) &&
80- (
81- echo "100644 $sha1 1 old"
82- echo "100644 $sha1 3 old"
83- ) | git update-index --index-info &&
84- >old &&
85- git ls-files -s &&
86- git checkout -f HEAD &&
87- git ls-files -s >actual &&
88- ! test -f old
92+ read_tree_u_must_succeed --reset -u HEAD &&
93+ git ls-files -s >expect &&
94+ sha1=$(git rev-parse :new) &&
95+ (
96+ echo "100644 $sha1 1 old"
97+ echo "100644 $sha1 3 old"
98+ ) | git update-index --index-info &&
99+ >old &&
100+ git ls-files -s &&
101+ git checkout -f HEAD &&
102+ git ls-files -s >actual &&
103+ ! test -f old
89104'
90105
91106test_done
0 commit comments