]> git.ipfire.org Git - thirdparty/git.git/blob - t/t1005-read-tree-reset.sh
wrapper: move xmmap() to sha1_file.c
[thirdparty/git.git] / t / t1005-read-tree-reset.sh
1 #!/bin/sh
2
3 test_description='read-tree -u --reset'
4
5 . ./test-lib.sh
6
7 # two-tree test
8
9 test_expect_success 'setup' '
10 git init &&
11 mkdir df &&
12 echo content >df/file &&
13 git add df/file &&
14 git commit -m one &&
15 git ls-files >expect &&
16 rm -rf df &&
17 echo content >df &&
18 git add df &&
19 echo content >new &&
20 git add new &&
21 git commit -m two
22 '
23
24 test_expect_success 'reset should work' '
25 git read-tree -u --reset HEAD^ &&
26 git ls-files >actual &&
27 test_cmp expect actual
28 '
29
30 test_expect_success 'reset should remove remnants from a failed merge' '
31 git read-tree --reset -u HEAD &&
32 git ls-files -s >expect &&
33 sha1=$(git rev-parse :new) &&
34 (
35 echo "100644 $sha1 1 old"
36 echo "100644 $sha1 3 old"
37 ) | git update-index --index-info &&
38 >old &&
39 git ls-files -s &&
40 git read-tree --reset -u HEAD &&
41 git ls-files -s >actual &&
42 ! test -f old
43 '
44
45 test_expect_success 'Porcelain reset should remove remnants too' '
46 git read-tree --reset -u HEAD &&
47 git ls-files -s >expect &&
48 sha1=$(git rev-parse :new) &&
49 (
50 echo "100644 $sha1 1 old"
51 echo "100644 $sha1 3 old"
52 ) | git update-index --index-info &&
53 >old &&
54 git ls-files -s &&
55 git reset --hard &&
56 git ls-files -s >actual &&
57 ! test -f old
58 '
59
60 test_expect_success 'Porcelain checkout -f should remove remnants too' '
61 git read-tree --reset -u HEAD &&
62 git ls-files -s >expect &&
63 sha1=$(git rev-parse :new) &&
64 (
65 echo "100644 $sha1 1 old"
66 echo "100644 $sha1 3 old"
67 ) | git update-index --index-info &&
68 >old &&
69 git ls-files -s &&
70 git checkout -f &&
71 git ls-files -s >actual &&
72 ! test -f old
73 '
74
75 test_expect_success 'Porcelain checkout -f HEAD should remove remnants too' '
76 git read-tree --reset -u HEAD &&
77 git ls-files -s >expect &&
78 sha1=$(git rev-parse :new) &&
79 (
80 echo "100644 $sha1 1 old"
81 echo "100644 $sha1 3 old"
82 ) | git update-index --index-info &&
83 >old &&
84 git ls-files -s &&
85 git checkout -f HEAD &&
86 git ls-files -s >actual &&
87 ! test -f old
88 '
89
90 test_done