]>
Commit | Line | Data |
---|---|---|
50753d00 JK |
1 | #!/bin/sh |
2 | ||
3 | test_description='read-tree -u --reset' | |
4 | ||
9081a421 | 5 | TEST_PASSES_SANITIZE_LEAK=true |
50753d00 | 6 | . ./test-lib.sh |
ea5070c9 | 7 | . "$TEST_DIRECTORY"/lib-read-tree.sh |
50753d00 JK |
8 | |
9 | # two-tree test | |
10 | ||
11 | test_expect_success 'setup' ' | |
76da5b1d JH |
12 | git init && |
13 | mkdir df && | |
14 | echo content >df/file && | |
15 | git add df/file && | |
16 | git commit -m one && | |
17 | git ls-files >expect && | |
18 | rm -rf df && | |
19 | echo content >df && | |
20 | git add df && | |
21 | echo content >new && | |
22 | git add new && | |
23 | git commit -m two | |
50753d00 JK |
24 | ' |
25 | ||
34110cd4 | 26 | test_expect_success 'reset should work' ' |
76da5b1d JH |
27 | read_tree_u_must_succeed -u --reset HEAD^ && |
28 | git ls-files >actual && | |
29 | test_cmp expect actual | |
50753d00 JK |
30 | ' |
31 | ||
d1a43f2a | 32 | test_expect_success 'reset should remove remnants from a failed merge' ' |
76da5b1d JH |
33 | read_tree_u_must_succeed --reset -u HEAD && |
34 | git ls-files -s >expect && | |
35 | sha1=$(git rev-parse :new) && | |
36 | ( | |
f2deabfc | 37 | echo "100644 $sha1 1 old" && |
76da5b1d JH |
38 | echo "100644 $sha1 3 old" |
39 | ) | git update-index --index-info && | |
40 | >old && | |
41 | git ls-files -s && | |
42 | read_tree_u_must_succeed --reset -u HEAD && | |
43 | git ls-files -s >actual && | |
8fc184c0 AR |
44 | ! test -f old && |
45 | test_cmp expect actual | |
d1a43f2a JH |
46 | ' |
47 | ||
77b43cac JH |
48 | test_expect_success 'two-way reset should remove remnants too' ' |
49 | read_tree_u_must_succeed --reset -u HEAD && | |
50 | git ls-files -s >expect && | |
51 | sha1=$(git rev-parse :new) && | |
52 | ( | |
f2deabfc | 53 | echo "100644 $sha1 1 old" && |
77b43cac JH |
54 | echo "100644 $sha1 3 old" |
55 | ) | git update-index --index-info && | |
56 | >old && | |
57 | git ls-files -s && | |
58 | read_tree_u_must_succeed --reset -u HEAD HEAD && | |
59 | git ls-files -s >actual && | |
8fc184c0 AR |
60 | ! test -f old && |
61 | test_cmp expect actual | |
77b43cac JH |
62 | ' |
63 | ||
d1a43f2a | 64 | test_expect_success 'Porcelain reset should remove remnants too' ' |
76da5b1d JH |
65 | read_tree_u_must_succeed --reset -u HEAD && |
66 | git ls-files -s >expect && | |
67 | sha1=$(git rev-parse :new) && | |
68 | ( | |
f2deabfc | 69 | echo "100644 $sha1 1 old" && |
76da5b1d JH |
70 | echo "100644 $sha1 3 old" |
71 | ) | git update-index --index-info && | |
72 | >old && | |
73 | git ls-files -s && | |
74 | git reset --hard && | |
75 | git ls-files -s >actual && | |
8fc184c0 AR |
76 | ! test -f old && |
77 | test_cmp expect actual | |
d1a43f2a JH |
78 | ' |
79 | ||
80 | test_expect_success 'Porcelain checkout -f should remove remnants too' ' | |
76da5b1d JH |
81 | read_tree_u_must_succeed --reset -u HEAD && |
82 | git ls-files -s >expect && | |
83 | sha1=$(git rev-parse :new) && | |
84 | ( | |
f2deabfc | 85 | echo "100644 $sha1 1 old" && |
76da5b1d JH |
86 | echo "100644 $sha1 3 old" |
87 | ) | git update-index --index-info && | |
88 | >old && | |
89 | git ls-files -s && | |
90 | git checkout -f && | |
91 | git ls-files -s >actual && | |
8fc184c0 AR |
92 | ! test -f old && |
93 | test_cmp expect actual | |
d1a43f2a JH |
94 | ' |
95 | ||
96 | test_expect_success 'Porcelain checkout -f HEAD should remove remnants too' ' | |
76da5b1d JH |
97 | read_tree_u_must_succeed --reset -u HEAD && |
98 | git ls-files -s >expect && | |
99 | sha1=$(git rev-parse :new) && | |
100 | ( | |
f2deabfc | 101 | echo "100644 $sha1 1 old" && |
76da5b1d JH |
102 | echo "100644 $sha1 3 old" |
103 | ) | git update-index --index-info && | |
104 | >old && | |
105 | git ls-files -s && | |
106 | git checkout -f HEAD && | |
107 | git ls-files -s >actual && | |
8fc184c0 AR |
108 | ! test -f old && |
109 | test_cmp expect actual | |
d1a43f2a JH |
110 | ' |
111 | ||
50753d00 | 112 | test_done |