]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | ||
3 | test_description='more git add -u' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | test_expect_success setup ' | |
8 | >xyzzy && | |
9 | _empty=$(git hash-object --stdin <xyzzy) && | |
10 | >yomin && | |
11 | >caskly && | |
12 | if test_have_prereq SYMLINKS; then | |
13 | ln -s frotz nitfol && | |
14 | T_letter=T | |
15 | else | |
16 | printf %s frotz > nitfol && | |
17 | T_letter=M | |
18 | fi && | |
19 | mkdir rezrov && | |
20 | >rezrov/bozbar && | |
21 | git add caskly xyzzy yomin nitfol rezrov/bozbar && | |
22 | ||
23 | test_tick && | |
24 | git commit -m initial | |
25 | ||
26 | ' | |
27 | ||
28 | test_expect_success modify ' | |
29 | rm -f xyzzy yomin nitfol caskly && | |
30 | # caskly disappears (not a submodule) | |
31 | mkdir caskly && | |
32 | # nitfol changes from symlink to regular | |
33 | >nitfol && | |
34 | # rezrov/bozbar disappears | |
35 | rm -fr rezrov && | |
36 | if test_have_prereq SYMLINKS; then | |
37 | ln -s xyzzy rezrov | |
38 | else | |
39 | printf %s xyzzy > rezrov | |
40 | fi && | |
41 | # xyzzy disappears (not a submodule) | |
42 | mkdir xyzzy && | |
43 | echo gnusto >xyzzy/bozbar && | |
44 | # yomin gets replaced with a submodule | |
45 | mkdir yomin && | |
46 | >yomin/yomin && | |
47 | ( | |
48 | cd yomin && | |
49 | git init && | |
50 | git add yomin && | |
51 | git commit -m "sub initial" | |
52 | ) && | |
53 | yomin=$(GIT_DIR=yomin/.git git rev-parse HEAD) && | |
54 | # yonk is added and then turned into a submodule | |
55 | # this should appear as T in diff-files and as A in diff-index | |
56 | >yonk && | |
57 | git add yonk && | |
58 | rm -f yonk && | |
59 | mkdir yonk && | |
60 | >yonk/yonk && | |
61 | ( | |
62 | cd yonk && | |
63 | git init && | |
64 | git add yonk && | |
65 | git commit -m "sub initial" | |
66 | ) && | |
67 | yonk=$(GIT_DIR=yonk/.git git rev-parse HEAD) && | |
68 | # zifmia is added and then removed | |
69 | # this should appear in diff-files but not in diff-index. | |
70 | >zifmia && | |
71 | git add zifmia && | |
72 | rm -f zifmia && | |
73 | mkdir zifmia && | |
74 | { | |
75 | git ls-tree -r HEAD | | |
76 | sed -e "s/^/:/" -e " | |
77 | / caskly/{ | |
78 | s/ caskly/ $ZERO_OID D&/ | |
79 | s/blob/000000/ | |
80 | } | |
81 | / nitfol/{ | |
82 | s/ nitfol/ $ZERO_OID $T_letter&/ | |
83 | s/blob/100644/ | |
84 | } | |
85 | / rezrov.bozbar/{ | |
86 | s/ rezrov.bozbar/ $ZERO_OID D&/ | |
87 | s/blob/000000/ | |
88 | } | |
89 | / xyzzy/{ | |
90 | s/ xyzzy/ $ZERO_OID D&/ | |
91 | s/blob/000000/ | |
92 | } | |
93 | / yomin/{ | |
94 | s/ yomin/ $ZERO_OID T&/ | |
95 | s/blob/160000/ | |
96 | } | |
97 | " | |
98 | } >expect && | |
99 | { | |
100 | cat expect | |
101 | echo ":100644 160000 $_empty $ZERO_OID T yonk" | |
102 | echo ":100644 000000 $_empty $ZERO_OID D zifmia" | |
103 | } >expect-files && | |
104 | { | |
105 | cat expect | |
106 | echo ":000000 160000 $ZERO_OID $ZERO_OID A yonk" | |
107 | } >expect-index && | |
108 | { | |
109 | echo "100644 $_empty 0 nitfol" | |
110 | echo "160000 $yomin 0 yomin" | |
111 | echo "160000 $yonk 0 yonk" | |
112 | } >expect-final | |
113 | ' | |
114 | ||
115 | test_expect_success diff-files ' | |
116 | git diff-files --raw >actual && | |
117 | test_cmp expect-files actual | |
118 | ' | |
119 | ||
120 | test_expect_success diff-index ' | |
121 | git diff-index --raw HEAD -- >actual && | |
122 | test_cmp expect-index actual | |
123 | ' | |
124 | ||
125 | test_expect_success 'add -u' ' | |
126 | rm -f ".git/saved-index" && | |
127 | cp -p ".git/index" ".git/saved-index" && | |
128 | git add -u && | |
129 | git ls-files -s >actual && | |
130 | test_cmp expect-final actual | |
131 | ' | |
132 | ||
133 | test_expect_success 'commit -a' ' | |
134 | if test -f ".git/saved-index" | |
135 | then | |
136 | rm -f ".git/index" && | |
137 | mv ".git/saved-index" ".git/index" | |
138 | fi && | |
139 | git commit -m "second" -a && | |
140 | git ls-files -s >actual && | |
141 | test_cmp expect-final actual && | |
142 | rm -f .git/index && | |
143 | git read-tree HEAD && | |
144 | git ls-files -s >actual && | |
145 | test_cmp expect-final actual | |
146 | ' | |
147 | ||
148 | test_done |