Blame


1 ad493afc 2019-08-03 stsp #!/bin/sh
2 ad493afc 2019-08-03 stsp #
3 ad493afc 2019-08-03 stsp # Copyright (c) 2019 Stefan Sperling <stsp@openbsd.org>
4 ad493afc 2019-08-03 stsp #
5 ad493afc 2019-08-03 stsp # Permission to use, copy, modify, and distribute this software for any
6 ad493afc 2019-08-03 stsp # purpose with or without fee is hereby granted, provided that the above
7 ad493afc 2019-08-03 stsp # copyright notice and this permission notice appear in all copies.
8 ad493afc 2019-08-03 stsp #
9 ad493afc 2019-08-03 stsp # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 ad493afc 2019-08-03 stsp # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 ad493afc 2019-08-03 stsp # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 ad493afc 2019-08-03 stsp # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 ad493afc 2019-08-03 stsp # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 ad493afc 2019-08-03 stsp # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 ad493afc 2019-08-03 stsp # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 ad493afc 2019-08-03 stsp
17 ad493afc 2019-08-03 stsp . ./common.sh
18 ad493afc 2019-08-03 stsp
19 f6cae3ed 2020-09-13 naddy test_unstage_basic() {
20 ad493afc 2019-08-03 stsp local testroot=`test_init unstage_basic`
21 ad493afc 2019-08-03 stsp
22 ad493afc 2019-08-03 stsp got checkout $testroot/repo $testroot/wt > /dev/null
23 49c543a6 2022-03-31 naddy ret=$?
24 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
25 ad493afc 2019-08-03 stsp test_done "$testroot" "$ret"
26 ad493afc 2019-08-03 stsp return 1
27 ad493afc 2019-08-03 stsp fi
28 ad493afc 2019-08-03 stsp
29 ad493afc 2019-08-03 stsp echo "modified file" > $testroot/wt/alpha
30 ad493afc 2019-08-03 stsp (cd $testroot/wt && got rm beta > /dev/null)
31 ad493afc 2019-08-03 stsp echo "new file" > $testroot/wt/foo
32 ad493afc 2019-08-03 stsp (cd $testroot/wt && got add foo > /dev/null)
33 ad493afc 2019-08-03 stsp
34 ad493afc 2019-08-03 stsp echo ' M alpha' > $testroot/stdout.expected
35 ad493afc 2019-08-03 stsp echo ' D beta' >> $testroot/stdout.expected
36 ad493afc 2019-08-03 stsp echo ' A foo' >> $testroot/stdout.expected
37 ad493afc 2019-08-03 stsp (cd $testroot/wt && got stage alpha beta foo > /dev/null)
38 ad493afc 2019-08-03 stsp
39 ad493afc 2019-08-03 stsp (cd $testroot/wt && got unstage > $testroot/stdout)
40 49c543a6 2022-03-31 naddy ret=$?
41 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
42 57ba6a8b 2019-08-08 stsp echo "got unstage command failed unexpectedly" >&2
43 ad493afc 2019-08-03 stsp test_done "$testroot" "1"
44 ad493afc 2019-08-03 stsp return 1
45 ad493afc 2019-08-03 stsp fi
46 ad493afc 2019-08-03 stsp
47 ad493afc 2019-08-03 stsp echo 'G alpha' > $testroot/stdout.expected
48 ad493afc 2019-08-03 stsp echo 'D beta' >> $testroot/stdout.expected
49 ad493afc 2019-08-03 stsp echo 'G foo' >> $testroot/stdout.expected
50 ad493afc 2019-08-03 stsp cmp -s $testroot/stdout.expected $testroot/stdout
51 49c543a6 2022-03-31 naddy ret=$?
52 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
53 ad493afc 2019-08-03 stsp diff -u $testroot/stdout.expected $testroot/stdout
54 ad493afc 2019-08-03 stsp test_done "$testroot" "$ret"
55 ad493afc 2019-08-03 stsp return 1
56 ad493afc 2019-08-03 stsp fi
57 ad493afc 2019-08-03 stsp
58 ad493afc 2019-08-03 stsp echo 'M alpha' > $testroot/stdout.expected
59 ad493afc 2019-08-03 stsp echo 'D beta' >> $testroot/stdout.expected
60 ad493afc 2019-08-03 stsp echo 'A foo' >> $testroot/stdout.expected
61 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
62 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
63 49c543a6 2022-03-31 naddy ret=$?
64 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
65 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
66 2e1f37b0 2019-08-08 stsp fi
67 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
68 2e1f37b0 2019-08-08 stsp }
69 2e1f37b0 2019-08-08 stsp
70 f6cae3ed 2020-09-13 naddy test_unstage_unversioned() {
71 8b13ce36 2019-08-08 stsp local testroot=`test_init unstage_unversioned`
72 8b13ce36 2019-08-08 stsp
73 8b13ce36 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
74 49c543a6 2022-03-31 naddy ret=$?
75 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
76 8b13ce36 2019-08-08 stsp test_done "$testroot" "$ret"
77 8b13ce36 2019-08-08 stsp return 1
78 8b13ce36 2019-08-08 stsp fi
79 8b13ce36 2019-08-08 stsp
80 8b13ce36 2019-08-08 stsp echo "modified file" > $testroot/wt/alpha
81 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got rm beta > /dev/null)
82 8b13ce36 2019-08-08 stsp echo "new file" > $testroot/wt/foo
83 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got add foo > /dev/null)
84 8b13ce36 2019-08-08 stsp
85 8b13ce36 2019-08-08 stsp echo ' M alpha' > $testroot/stdout.expected
86 8b13ce36 2019-08-08 stsp echo ' D beta' >> $testroot/stdout.expected
87 8b13ce36 2019-08-08 stsp echo ' A foo' >> $testroot/stdout.expected
88 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
89 8b13ce36 2019-08-08 stsp
90 8b13ce36 2019-08-08 stsp touch $testroot/wt/unversioned-file
91 8b13ce36 2019-08-08 stsp
92 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
93 8b13ce36 2019-08-08 stsp echo ' M alpha' > $testroot/stdout.expected
94 8b13ce36 2019-08-08 stsp echo ' D beta' >> $testroot/stdout.expected
95 8b13ce36 2019-08-08 stsp echo ' A foo' >> $testroot/stdout.expected
96 8b13ce36 2019-08-08 stsp echo "? unversioned-file" >> $testroot/stdout.expected
97 8b13ce36 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
98 49c543a6 2022-03-31 naddy ret=$?
99 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
100 8b13ce36 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
101 8b13ce36 2019-08-08 stsp test_done "$testroot" "$ret"
102 8b13ce36 2019-08-08 stsp return 1
103 8b13ce36 2019-08-08 stsp fi
104 8b13ce36 2019-08-08 stsp
105 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got unstage > $testroot/stdout)
106 49c543a6 2022-03-31 naddy ret=$?
107 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
108 8b13ce36 2019-08-08 stsp echo "got unstage command failed unexpectedly" >&2
109 8b13ce36 2019-08-08 stsp test_done "$testroot" "1"
110 8b13ce36 2019-08-08 stsp return 1
111 8b13ce36 2019-08-08 stsp fi
112 8b13ce36 2019-08-08 stsp
113 8b13ce36 2019-08-08 stsp echo 'G alpha' > $testroot/stdout.expected
114 8b13ce36 2019-08-08 stsp echo 'D beta' >> $testroot/stdout.expected
115 8b13ce36 2019-08-08 stsp echo 'G foo' >> $testroot/stdout.expected
116 8b13ce36 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
117 49c543a6 2022-03-31 naddy ret=$?
118 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
119 8b13ce36 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
120 8b13ce36 2019-08-08 stsp test_done "$testroot" "$ret"
121 8b13ce36 2019-08-08 stsp return 1
122 8b13ce36 2019-08-08 stsp fi
123 8b13ce36 2019-08-08 stsp
124 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
125 8b13ce36 2019-08-08 stsp
126 8b13ce36 2019-08-08 stsp # unstaging an unversioned path is a no-op
127 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got unstage unversioned > $testroot/stdout)
128 49c543a6 2022-03-31 naddy ret=$?
129 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
130 8b13ce36 2019-08-08 stsp echo "got unstage command failed unexpectedly" >&2
131 8b13ce36 2019-08-08 stsp test_done "$testroot" "$ret"
132 8b13ce36 2019-08-08 stsp return 1
133 8b13ce36 2019-08-08 stsp fi
134 8b13ce36 2019-08-08 stsp
135 8b13ce36 2019-08-08 stsp echo ' M alpha' > $testroot/stdout.expected
136 8b13ce36 2019-08-08 stsp echo ' D beta' >> $testroot/stdout.expected
137 8b13ce36 2019-08-08 stsp echo ' A foo' >> $testroot/stdout.expected
138 8b13ce36 2019-08-08 stsp echo "? unversioned-file" >> $testroot/stdout.expected
139 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
140 8b13ce36 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
141 49c543a6 2022-03-31 naddy ret=$?
142 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
143 8b13ce36 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
144 8b13ce36 2019-08-08 stsp fi
145 8b13ce36 2019-08-08 stsp test_done "$testroot" "$ret"
146 8b13ce36 2019-08-08 stsp }
147 8b13ce36 2019-08-08 stsp
148 f6cae3ed 2020-09-13 naddy test_unstage_nonexistent() {
149 8564cb21 2019-08-08 stsp local testroot=`test_init unstage_nonexistent`
150 8564cb21 2019-08-08 stsp
151 8564cb21 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
152 49c543a6 2022-03-31 naddy ret=$?
153 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
154 8564cb21 2019-08-08 stsp test_done "$testroot" "$ret"
155 8564cb21 2019-08-08 stsp return 1
156 8564cb21 2019-08-08 stsp fi
157 8564cb21 2019-08-08 stsp
158 8564cb21 2019-08-08 stsp echo "modified file" > $testroot/wt/alpha
159 8564cb21 2019-08-08 stsp (cd $testroot/wt && got rm beta > /dev/null)
160 8564cb21 2019-08-08 stsp echo "new file" > $testroot/wt/foo
161 8564cb21 2019-08-08 stsp (cd $testroot/wt && got add foo > /dev/null)
162 8564cb21 2019-08-08 stsp
163 8564cb21 2019-08-08 stsp echo ' M alpha' > $testroot/stdout.expected
164 8564cb21 2019-08-08 stsp echo ' D beta' >> $testroot/stdout.expected
165 8564cb21 2019-08-08 stsp echo ' A foo' >> $testroot/stdout.expected
166 8564cb21 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
167 8564cb21 2019-08-08 stsp
168 8564cb21 2019-08-08 stsp # unstaging a non-existent file is a no-op
169 8564cb21 2019-08-08 stsp (cd $testroot/wt && got unstage nonexistent-file > $testroot/stdout)
170 49c543a6 2022-03-31 naddy ret=$?
171 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
172 8564cb21 2019-08-08 stsp echo "got unstage command failed unexpectedly" >&2
173 8564cb21 2019-08-08 stsp test_done "$testroot" "1"
174 8564cb21 2019-08-08 stsp return 1
175 8564cb21 2019-08-08 stsp fi
176 8564cb21 2019-08-08 stsp
177 8564cb21 2019-08-08 stsp echo -n > $testroot/stdout.expected
178 8564cb21 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
179 49c543a6 2022-03-31 naddy ret=$?
180 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
181 8564cb21 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
182 8564cb21 2019-08-08 stsp fi
183 8564cb21 2019-08-08 stsp test_done "$testroot" "$ret"
184 8564cb21 2019-08-08 stsp }
185 8564cb21 2019-08-08 stsp
186 f6cae3ed 2020-09-13 naddy test_unstage_patch() {
187 2e1f37b0 2019-08-08 stsp local testroot=`test_init unstage_patch`
188 2e1f37b0 2019-08-08 stsp
189 2e1f37b0 2019-08-08 stsp jot 16 > $testroot/repo/numbers
190 2e1f37b0 2019-08-08 stsp (cd $testroot/repo && git add numbers)
191 2e1f37b0 2019-08-08 stsp git_commit $testroot/repo -m "added numbers file"
192 2e1f37b0 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
193 2e1f37b0 2019-08-08 stsp
194 2e1f37b0 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
195 49c543a6 2022-03-31 naddy ret=$?
196 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
197 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
198 2e1f37b0 2019-08-08 stsp return 1
199 2e1f37b0 2019-08-08 stsp fi
200 2e1f37b0 2019-08-08 stsp
201 2e1f37b0 2019-08-08 stsp sed -i -e 's/^2$/a/' $testroot/wt/numbers
202 2e1f37b0 2019-08-08 stsp sed -i -e 's/^7$/b/' $testroot/wt/numbers
203 2e1f37b0 2019-08-08 stsp sed -i -e 's/^16$/c/' $testroot/wt/numbers
204 2e1f37b0 2019-08-08 stsp
205 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
206 49c543a6 2022-03-31 naddy ret=$?
207 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
208 2e1f37b0 2019-08-08 stsp echo "got stage command failed unexpectedly" >&2
209 2e1f37b0 2019-08-08 stsp test_done "$testroot" "1"
210 2e1f37b0 2019-08-08 stsp return 1
211 2e1f37b0 2019-08-08 stsp fi
212 2e1f37b0 2019-08-08 stsp
213 2e1f37b0 2019-08-08 stsp # don't unstage any hunks
214 2e1f37b0 2019-08-08 stsp printf "n\nn\nn\n" > $testroot/patchscript
215 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
216 2e1f37b0 2019-08-08 stsp numbers > $testroot/stdout)
217 49c543a6 2022-03-31 naddy ret=$?
218 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
219 57ba6a8b 2019-08-08 stsp echo "got unstage command failed unexpectedly" >&2
220 2e1f37b0 2019-08-08 stsp test_done "$testroot" "1"
221 2e1f37b0 2019-08-08 stsp return 1
222 2e1f37b0 2019-08-08 stsp fi
223 2e1f37b0 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
224 2e1f37b0 2019-08-08 stsp -----------------------------------------------
225 2e1f37b0 2019-08-08 stsp @@ -1,5 +1,5 @@
226 2e1f37b0 2019-08-08 stsp 1
227 2e1f37b0 2019-08-08 stsp -2
228 2e1f37b0 2019-08-08 stsp +a
229 2e1f37b0 2019-08-08 stsp 3
230 2e1f37b0 2019-08-08 stsp 4
231 2e1f37b0 2019-08-08 stsp 5
232 2e1f37b0 2019-08-08 stsp -----------------------------------------------
233 2e1f37b0 2019-08-08 stsp M numbers (change 1 of 3)
234 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] n
235 2e1f37b0 2019-08-08 stsp -----------------------------------------------
236 2e1f37b0 2019-08-08 stsp @@ -4,7 +4,7 @@
237 2e1f37b0 2019-08-08 stsp 4
238 2e1f37b0 2019-08-08 stsp 5
239 2e1f37b0 2019-08-08 stsp 6
240 2e1f37b0 2019-08-08 stsp -7
241 2e1f37b0 2019-08-08 stsp +b
242 2e1f37b0 2019-08-08 stsp 8
243 2e1f37b0 2019-08-08 stsp 9
244 2e1f37b0 2019-08-08 stsp 10
245 2e1f37b0 2019-08-08 stsp -----------------------------------------------
246 2e1f37b0 2019-08-08 stsp M numbers (change 2 of 3)
247 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] n
248 2e1f37b0 2019-08-08 stsp -----------------------------------------------
249 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
250 2e1f37b0 2019-08-08 stsp 13
251 2e1f37b0 2019-08-08 stsp 14
252 2e1f37b0 2019-08-08 stsp 15
253 2e1f37b0 2019-08-08 stsp -16
254 2e1f37b0 2019-08-08 stsp +c
255 2e1f37b0 2019-08-08 stsp -----------------------------------------------
256 2e1f37b0 2019-08-08 stsp M numbers (change 3 of 3)
257 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] n
258 2e1f37b0 2019-08-08 stsp EOF
259 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
260 49c543a6 2022-03-31 naddy ret=$?
261 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
262 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
263 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
264 2e1f37b0 2019-08-08 stsp return 1
265 2e1f37b0 2019-08-08 stsp fi
266 2e1f37b0 2019-08-08 stsp
267 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
268 2e1f37b0 2019-08-08 stsp echo " M numbers" > $testroot/stdout.expected
269 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
270 49c543a6 2022-03-31 naddy ret=$?
271 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
272 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
273 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
274 2e1f37b0 2019-08-08 stsp return 1
275 2e1f37b0 2019-08-08 stsp fi
276 2e1f37b0 2019-08-08 stsp
277 2e1f37b0 2019-08-08 stsp # unstage middle hunk
278 2e1f37b0 2019-08-08 stsp printf "n\ny\nn\n" > $testroot/patchscript
279 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
280 2e1f37b0 2019-08-08 stsp numbers > $testroot/stdout)
281 2e1f37b0 2019-08-08 stsp
282 2e1f37b0 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
283 2e1f37b0 2019-08-08 stsp -----------------------------------------------
284 2e1f37b0 2019-08-08 stsp @@ -1,5 +1,5 @@
285 2e1f37b0 2019-08-08 stsp 1
286 2e1f37b0 2019-08-08 stsp -2
287 2e1f37b0 2019-08-08 stsp +a
288 2e1f37b0 2019-08-08 stsp 3
289 2e1f37b0 2019-08-08 stsp 4
290 2e1f37b0 2019-08-08 stsp 5
291 2e1f37b0 2019-08-08 stsp -----------------------------------------------
292 2e1f37b0 2019-08-08 stsp M numbers (change 1 of 3)
293 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] n
294 2e1f37b0 2019-08-08 stsp -----------------------------------------------
295 2e1f37b0 2019-08-08 stsp @@ -4,7 +4,7 @@
296 2e1f37b0 2019-08-08 stsp 4
297 2e1f37b0 2019-08-08 stsp 5
298 2e1f37b0 2019-08-08 stsp 6
299 2e1f37b0 2019-08-08 stsp -7
300 2e1f37b0 2019-08-08 stsp +b
301 2e1f37b0 2019-08-08 stsp 8
302 2e1f37b0 2019-08-08 stsp 9
303 2e1f37b0 2019-08-08 stsp 10
304 2e1f37b0 2019-08-08 stsp -----------------------------------------------
305 2e1f37b0 2019-08-08 stsp M numbers (change 2 of 3)
306 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] y
307 2e1f37b0 2019-08-08 stsp -----------------------------------------------
308 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
309 2e1f37b0 2019-08-08 stsp 13
310 2e1f37b0 2019-08-08 stsp 14
311 2e1f37b0 2019-08-08 stsp 15
312 2e1f37b0 2019-08-08 stsp -16
313 2e1f37b0 2019-08-08 stsp +c
314 2e1f37b0 2019-08-08 stsp -----------------------------------------------
315 2e1f37b0 2019-08-08 stsp M numbers (change 3 of 3)
316 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] n
317 2e1f37b0 2019-08-08 stsp G numbers
318 2e1f37b0 2019-08-08 stsp EOF
319 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
320 49c543a6 2022-03-31 naddy ret=$?
321 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
322 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
323 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
324 2e1f37b0 2019-08-08 stsp return 1
325 2e1f37b0 2019-08-08 stsp fi
326 2e1f37b0 2019-08-08 stsp
327 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
328 2e1f37b0 2019-08-08 stsp echo "MM numbers" > $testroot/stdout.expected
329 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
330 49c543a6 2022-03-31 naddy ret=$?
331 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
332 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
333 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
334 2e1f37b0 2019-08-08 stsp return 1
335 2e1f37b0 2019-08-08 stsp fi
336 2e1f37b0 2019-08-08 stsp
337 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
338 2e1f37b0 2019-08-08 stsp
339 8469d821 2022-06-25 stsp echo "diff -s $testroot/wt" > $testroot/stdout.expected
340 8469d821 2022-06-25 stsp echo "commit - $commit_id" >> $testroot/stdout.expected
341 8469d821 2022-06-25 stsp echo "path + $testroot/wt (staged changes)" >> $testroot/stdout.expected
342 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
343 2e1f37b0 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
344 2e1f37b0 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
345 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
346 2e1f37b0 2019-08-08 stsp echo -n 'blob + ' >> $testroot/stdout.expected
347 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 \
348 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
349 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
350 2e1f37b0 2019-08-08 stsp --- numbers
351 2e1f37b0 2019-08-08 stsp +++ numbers
352 2e1f37b0 2019-08-08 stsp @@ -1,5 +1,5 @@
353 2e1f37b0 2019-08-08 stsp 1
354 2e1f37b0 2019-08-08 stsp -2
355 2e1f37b0 2019-08-08 stsp +a
356 2e1f37b0 2019-08-08 stsp 3
357 2e1f37b0 2019-08-08 stsp 4
358 2e1f37b0 2019-08-08 stsp 5
359 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
360 2e1f37b0 2019-08-08 stsp 13
361 2e1f37b0 2019-08-08 stsp 14
362 2e1f37b0 2019-08-08 stsp 15
363 2e1f37b0 2019-08-08 stsp -16
364 2e1f37b0 2019-08-08 stsp +c
365 2e1f37b0 2019-08-08 stsp EOF
366 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
367 49c543a6 2022-03-31 naddy ret=$?
368 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
369 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
370 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
371 2e1f37b0 2019-08-08 stsp return 1
372 2e1f37b0 2019-08-08 stsp fi
373 2e1f37b0 2019-08-08 stsp
374 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
375 8469d821 2022-06-25 stsp echo "diff $testroot/wt" > $testroot/stdout.expected
376 8469d821 2022-06-25 stsp echo "commit - $commit_id" >> $testroot/stdout.expected
377 8469d821 2022-06-25 stsp echo "path + $testroot/wt" >> $testroot/stdout.expected
378 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
379 4ce46740 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 | \
380 4ce46740 2019-08-08 stsp tr -d '\n' >> $testroot/stdout.expected
381 4ce46740 2019-08-08 stsp echo " (staged)" >> $testroot/stdout.expected
382 2e1f37b0 2019-08-08 stsp echo "file + numbers" >> $testroot/stdout.expected
383 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
384 2e1f37b0 2019-08-08 stsp --- numbers
385 2e1f37b0 2019-08-08 stsp +++ numbers
386 2e1f37b0 2019-08-08 stsp @@ -4,7 +4,7 @@ a
387 2e1f37b0 2019-08-08 stsp 4
388 2e1f37b0 2019-08-08 stsp 5
389 2e1f37b0 2019-08-08 stsp 6
390 2e1f37b0 2019-08-08 stsp -7
391 2e1f37b0 2019-08-08 stsp +b
392 2e1f37b0 2019-08-08 stsp 8
393 2e1f37b0 2019-08-08 stsp 9
394 2e1f37b0 2019-08-08 stsp 10
395 2e1f37b0 2019-08-08 stsp EOF
396 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
397 49c543a6 2022-03-31 naddy ret=$?
398 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
399 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
400 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
401 2e1f37b0 2019-08-08 stsp return 1
402 2e1f37b0 2019-08-08 stsp fi
403 2e1f37b0 2019-08-08 stsp
404 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage >/dev/null)
405 49c543a6 2022-03-31 naddy ret=$?
406 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
407 2e1f37b0 2019-08-08 stsp echo "got stage command failed unexpectedly" >&2
408 2e1f37b0 2019-08-08 stsp test_done "$testroot" "1"
409 2e1f37b0 2019-08-08 stsp return 1
410 2e1f37b0 2019-08-08 stsp fi
411 2e1f37b0 2019-08-08 stsp
412 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
413 2e1f37b0 2019-08-08 stsp echo " M numbers" > $testroot/stdout.expected
414 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
415 49c543a6 2022-03-31 naddy ret=$?
416 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
417 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
418 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
419 2e1f37b0 2019-08-08 stsp return 1
420 2e1f37b0 2019-08-08 stsp fi
421 2e1f37b0 2019-08-08 stsp
422 2e1f37b0 2019-08-08 stsp # unstage last hunk
423 2e1f37b0 2019-08-08 stsp printf "n\nn\ny\n" > $testroot/patchscript
424 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
425 2e1f37b0 2019-08-08 stsp numbers > $testroot/stdout)
426 2e1f37b0 2019-08-08 stsp
427 2e1f37b0 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
428 2e1f37b0 2019-08-08 stsp -----------------------------------------------
429 2e1f37b0 2019-08-08 stsp @@ -1,5 +1,5 @@
430 2e1f37b0 2019-08-08 stsp 1
431 2e1f37b0 2019-08-08 stsp -2
432 2e1f37b0 2019-08-08 stsp +a
433 2e1f37b0 2019-08-08 stsp 3
434 2e1f37b0 2019-08-08 stsp 4
435 2e1f37b0 2019-08-08 stsp 5
436 2e1f37b0 2019-08-08 stsp -----------------------------------------------
437 2e1f37b0 2019-08-08 stsp M numbers (change 1 of 3)
438 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] n
439 2e1f37b0 2019-08-08 stsp -----------------------------------------------
440 2e1f37b0 2019-08-08 stsp @@ -4,7 +4,7 @@
441 2e1f37b0 2019-08-08 stsp 4
442 2e1f37b0 2019-08-08 stsp 5
443 2e1f37b0 2019-08-08 stsp 6
444 2e1f37b0 2019-08-08 stsp -7
445 2e1f37b0 2019-08-08 stsp +b
446 2e1f37b0 2019-08-08 stsp 8
447 2e1f37b0 2019-08-08 stsp 9
448 2e1f37b0 2019-08-08 stsp 10
449 2e1f37b0 2019-08-08 stsp -----------------------------------------------
450 2e1f37b0 2019-08-08 stsp M numbers (change 2 of 3)
451 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] n
452 2e1f37b0 2019-08-08 stsp -----------------------------------------------
453 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
454 2e1f37b0 2019-08-08 stsp 13
455 2e1f37b0 2019-08-08 stsp 14
456 2e1f37b0 2019-08-08 stsp 15
457 2e1f37b0 2019-08-08 stsp -16
458 2e1f37b0 2019-08-08 stsp +c
459 2e1f37b0 2019-08-08 stsp -----------------------------------------------
460 2e1f37b0 2019-08-08 stsp M numbers (change 3 of 3)
461 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] y
462 2e1f37b0 2019-08-08 stsp G numbers
463 2e1f37b0 2019-08-08 stsp EOF
464 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
465 49c543a6 2022-03-31 naddy ret=$?
466 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
467 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
468 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
469 2e1f37b0 2019-08-08 stsp return 1
470 2e1f37b0 2019-08-08 stsp fi
471 2e1f37b0 2019-08-08 stsp
472 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
473 2e1f37b0 2019-08-08 stsp echo "MM numbers" > $testroot/stdout.expected
474 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
475 49c543a6 2022-03-31 naddy ret=$?
476 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
477 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
478 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
479 2e1f37b0 2019-08-08 stsp return 1
480 2e1f37b0 2019-08-08 stsp fi
481 2e1f37b0 2019-08-08 stsp
482 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
483 2e1f37b0 2019-08-08 stsp
484 8469d821 2022-06-25 stsp echo "diff -s $testroot/wt" > $testroot/stdout.expected
485 8469d821 2022-06-25 stsp echo "commit - $commit_id" >> $testroot/stdout.expected
486 8469d821 2022-06-25 stsp echo "path + $testroot/wt (staged changes)" >> $testroot/stdout.expected
487 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
488 2e1f37b0 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
489 2e1f37b0 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
490 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
491 2e1f37b0 2019-08-08 stsp echo -n 'blob + ' >> $testroot/stdout.expected
492 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 \
493 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
494 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
495 2e1f37b0 2019-08-08 stsp --- numbers
496 2e1f37b0 2019-08-08 stsp +++ numbers
497 2e1f37b0 2019-08-08 stsp @@ -1,10 +1,10 @@
498 2e1f37b0 2019-08-08 stsp 1
499 2e1f37b0 2019-08-08 stsp -2
500 2e1f37b0 2019-08-08 stsp +a
501 2e1f37b0 2019-08-08 stsp 3
502 2e1f37b0 2019-08-08 stsp 4
503 2e1f37b0 2019-08-08 stsp 5
504 2e1f37b0 2019-08-08 stsp 6
505 2e1f37b0 2019-08-08 stsp -7
506 2e1f37b0 2019-08-08 stsp +b
507 2e1f37b0 2019-08-08 stsp 8
508 2e1f37b0 2019-08-08 stsp 9
509 2e1f37b0 2019-08-08 stsp 10
510 2e1f37b0 2019-08-08 stsp EOF
511 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
512 49c543a6 2022-03-31 naddy ret=$?
513 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
514 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
515 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
516 2e1f37b0 2019-08-08 stsp return 1
517 2e1f37b0 2019-08-08 stsp fi
518 2e1f37b0 2019-08-08 stsp
519 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
520 8469d821 2022-06-25 stsp echo "diff $testroot/wt" > $testroot/stdout.expected
521 8469d821 2022-06-25 stsp echo "commit - $commit_id" >> $testroot/stdout.expected
522 8469d821 2022-06-25 stsp echo "path + $testroot/wt" >> $testroot/stdout.expected
523 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
524 4ce46740 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 | \
525 4ce46740 2019-08-08 stsp tr -d '\n' >> $testroot/stdout.expected
526 4ce46740 2019-08-08 stsp echo " (staged)" >> $testroot/stdout.expected
527 2e1f37b0 2019-08-08 stsp echo "file + numbers" >> $testroot/stdout.expected
528 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
529 2e1f37b0 2019-08-08 stsp --- numbers
530 2e1f37b0 2019-08-08 stsp +++ numbers
531 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@ b
532 2e1f37b0 2019-08-08 stsp 13
533 2e1f37b0 2019-08-08 stsp 14
534 2e1f37b0 2019-08-08 stsp 15
535 2e1f37b0 2019-08-08 stsp -16
536 2e1f37b0 2019-08-08 stsp +c
537 2e1f37b0 2019-08-08 stsp EOF
538 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
539 49c543a6 2022-03-31 naddy ret=$?
540 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
541 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
542 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
543 2e1f37b0 2019-08-08 stsp return 1
544 2e1f37b0 2019-08-08 stsp fi
545 2e1f37b0 2019-08-08 stsp
546 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage >/dev/null)
547 49c543a6 2022-03-31 naddy ret=$?
548 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
549 2e1f37b0 2019-08-08 stsp echo "got stage command failed unexpectedly" >&2
550 2e1f37b0 2019-08-08 stsp test_done "$testroot" "1"
551 2e1f37b0 2019-08-08 stsp return 1
552 2e1f37b0 2019-08-08 stsp fi
553 2e1f37b0 2019-08-08 stsp
554 ad493afc 2019-08-03 stsp (cd $testroot/wt && got status > $testroot/stdout)
555 2e1f37b0 2019-08-08 stsp echo " M numbers" > $testroot/stdout.expected
556 ad493afc 2019-08-03 stsp cmp -s $testroot/stdout.expected $testroot/stdout
557 49c543a6 2022-03-31 naddy ret=$?
558 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
559 ad493afc 2019-08-03 stsp diff -u $testroot/stdout.expected $testroot/stdout
560 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
561 2e1f37b0 2019-08-08 stsp return 1
562 ad493afc 2019-08-03 stsp fi
563 2e1f37b0 2019-08-08 stsp
564 2e1f37b0 2019-08-08 stsp # unstage all hunks
565 2e1f37b0 2019-08-08 stsp printf "y\ny\ny\n" > $testroot/patchscript
566 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
567 2e1f37b0 2019-08-08 stsp numbers > $testroot/stdout)
568 2e1f37b0 2019-08-08 stsp
569 2e1f37b0 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
570 2e1f37b0 2019-08-08 stsp -----------------------------------------------
571 2e1f37b0 2019-08-08 stsp @@ -1,5 +1,5 @@
572 2e1f37b0 2019-08-08 stsp 1
573 2e1f37b0 2019-08-08 stsp -2
574 2e1f37b0 2019-08-08 stsp +a
575 2e1f37b0 2019-08-08 stsp 3
576 2e1f37b0 2019-08-08 stsp 4
577 2e1f37b0 2019-08-08 stsp 5
578 2e1f37b0 2019-08-08 stsp -----------------------------------------------
579 2e1f37b0 2019-08-08 stsp M numbers (change 1 of 3)
580 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] y
581 2e1f37b0 2019-08-08 stsp -----------------------------------------------
582 2e1f37b0 2019-08-08 stsp @@ -4,7 +4,7 @@
583 2e1f37b0 2019-08-08 stsp 4
584 2e1f37b0 2019-08-08 stsp 5
585 2e1f37b0 2019-08-08 stsp 6
586 2e1f37b0 2019-08-08 stsp -7
587 2e1f37b0 2019-08-08 stsp +b
588 2e1f37b0 2019-08-08 stsp 8
589 2e1f37b0 2019-08-08 stsp 9
590 2e1f37b0 2019-08-08 stsp 10
591 2e1f37b0 2019-08-08 stsp -----------------------------------------------
592 2e1f37b0 2019-08-08 stsp M numbers (change 2 of 3)
593 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] y
594 2e1f37b0 2019-08-08 stsp -----------------------------------------------
595 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
596 2e1f37b0 2019-08-08 stsp 13
597 2e1f37b0 2019-08-08 stsp 14
598 2e1f37b0 2019-08-08 stsp 15
599 2e1f37b0 2019-08-08 stsp -16
600 2e1f37b0 2019-08-08 stsp +c
601 2e1f37b0 2019-08-08 stsp -----------------------------------------------
602 2e1f37b0 2019-08-08 stsp M numbers (change 3 of 3)
603 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] y
604 2e1f37b0 2019-08-08 stsp G numbers
605 2e1f37b0 2019-08-08 stsp EOF
606 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
607 49c543a6 2022-03-31 naddy ret=$?
608 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
609 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
610 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
611 2e1f37b0 2019-08-08 stsp return 1
612 2e1f37b0 2019-08-08 stsp fi
613 2e1f37b0 2019-08-08 stsp
614 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
615 2e1f37b0 2019-08-08 stsp echo "M numbers" > $testroot/stdout.expected
616 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
617 49c543a6 2022-03-31 naddy ret=$?
618 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
619 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
620 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
621 2e1f37b0 2019-08-08 stsp return 1
622 2e1f37b0 2019-08-08 stsp fi
623 2e1f37b0 2019-08-08 stsp
624 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
625 2e1f37b0 2019-08-08 stsp echo -n > $testroot/stdout.expected
626 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
627 49c543a6 2022-03-31 naddy ret=$?
628 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
629 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
630 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
631 2e1f37b0 2019-08-08 stsp return 1
632 2e1f37b0 2019-08-08 stsp fi
633 2e1f37b0 2019-08-08 stsp
634 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
635 2e1f37b0 2019-08-08 stsp
636 8469d821 2022-06-25 stsp echo "diff $testroot/wt" > $testroot/stdout.expected
637 8469d821 2022-06-25 stsp echo "commit - $commit_id" >> $testroot/stdout.expected
638 8469d821 2022-06-25 stsp echo "path + $testroot/wt" >> $testroot/stdout.expected
639 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
640 2e1f37b0 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
641 2e1f37b0 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
642 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
643 2e1f37b0 2019-08-08 stsp echo 'file + numbers' >> $testroot/stdout.expected
644 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
645 2e1f37b0 2019-08-08 stsp --- numbers
646 2e1f37b0 2019-08-08 stsp +++ numbers
647 2e1f37b0 2019-08-08 stsp @@ -1,10 +1,10 @@
648 2e1f37b0 2019-08-08 stsp 1
649 2e1f37b0 2019-08-08 stsp -2
650 2e1f37b0 2019-08-08 stsp +a
651 2e1f37b0 2019-08-08 stsp 3
652 2e1f37b0 2019-08-08 stsp 4
653 2e1f37b0 2019-08-08 stsp 5
654 2e1f37b0 2019-08-08 stsp 6
655 2e1f37b0 2019-08-08 stsp -7
656 2e1f37b0 2019-08-08 stsp +b
657 2e1f37b0 2019-08-08 stsp 8
658 2e1f37b0 2019-08-08 stsp 9
659 2e1f37b0 2019-08-08 stsp 10
660 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
661 2e1f37b0 2019-08-08 stsp 13
662 2e1f37b0 2019-08-08 stsp 14
663 2e1f37b0 2019-08-08 stsp 15
664 2e1f37b0 2019-08-08 stsp -16
665 2e1f37b0 2019-08-08 stsp +c
666 2e1f37b0 2019-08-08 stsp EOF
667 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
668 49c543a6 2022-03-31 naddy ret=$?
669 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
670 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
671 2e1f37b0 2019-08-08 stsp fi
672 ad493afc 2019-08-03 stsp test_done "$testroot" "$ret"
673 2e1f37b0 2019-08-08 stsp
674 ad493afc 2019-08-03 stsp }
675 ad493afc 2019-08-03 stsp
676 f6cae3ed 2020-09-13 naddy test_unstage_patch_added() {
677 2e1f37b0 2019-08-08 stsp local testroot=`test_init unstage_patch_added`
678 2e1f37b0 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
679 2e1f37b0 2019-08-08 stsp
680 2e1f37b0 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
681 49c543a6 2022-03-31 naddy ret=$?
682 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
683 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
684 2e1f37b0 2019-08-08 stsp return 1
685 2e1f37b0 2019-08-08 stsp fi
686 2e1f37b0 2019-08-08 stsp
687 2e1f37b0 2019-08-08 stsp echo "new" > $testroot/wt/epsilon/new
688 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got add epsilon/new > /dev/null)
689 2e1f37b0 2019-08-08 stsp
690 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
691 2e1f37b0 2019-08-08 stsp
692 2e1f37b0 2019-08-08 stsp printf "y\n" > $testroot/patchscript
693 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
694 2e1f37b0 2019-08-08 stsp epsilon/new > $testroot/stdout)
695 2e1f37b0 2019-08-08 stsp
696 2e1f37b0 2019-08-08 stsp echo "A epsilon/new" > $testroot/stdout.expected
697 2e1f37b0 2019-08-08 stsp echo "unstage this addition? [y/n] y" >> $testroot/stdout.expected
698 2e1f37b0 2019-08-08 stsp echo "G epsilon/new" >> $testroot/stdout.expected
699 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
700 49c543a6 2022-03-31 naddy ret=$?
701 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
702 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
703 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
704 2e1f37b0 2019-08-08 stsp return 1
705 2e1f37b0 2019-08-08 stsp fi
706 2e1f37b0 2019-08-08 stsp
707 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
708 2e1f37b0 2019-08-08 stsp echo "A epsilon/new" > $testroot/stdout.expected
709 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
710 49c543a6 2022-03-31 naddy ret=$?
711 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
712 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
713 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
714 2e1f37b0 2019-08-08 stsp return 1
715 2e1f37b0 2019-08-08 stsp fi
716 2e1f37b0 2019-08-08 stsp
717 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
718 2e1f37b0 2019-08-08 stsp echo -n > $testroot/stdout.expected
719 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
720 49c543a6 2022-03-31 naddy ret=$?
721 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
722 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
723 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
724 2e1f37b0 2019-08-08 stsp return 1
725 2e1f37b0 2019-08-08 stsp fi
726 2e1f37b0 2019-08-08 stsp
727 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
728 2e1f37b0 2019-08-08 stsp
729 8469d821 2022-06-25 stsp echo "diff $testroot/wt" > $testroot/stdout.expected
730 8469d821 2022-06-25 stsp echo "commit - $commit_id" >> $testroot/stdout.expected
731 8469d821 2022-06-25 stsp echo "path + $testroot/wt" >> $testroot/stdout.expected
732 2e1f37b0 2019-08-08 stsp echo 'blob - /dev/null' >> $testroot/stdout.expected
733 2ad87fff 2022-09-23 stsp echo 'file + epsilon/new (mode 644)' >> $testroot/stdout.expected
734 1cb46f00 2020-11-21 stsp echo "--- /dev/null" >> $testroot/stdout.expected
735 2e1f37b0 2019-08-08 stsp echo "+++ epsilon/new" >> $testroot/stdout.expected
736 2e1f37b0 2019-08-08 stsp echo "@@ -0,0 +1 @@" >> $testroot/stdout.expected
737 2e1f37b0 2019-08-08 stsp echo "+new" >> $testroot/stdout.expected
738 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
739 49c543a6 2022-03-31 naddy ret=$?
740 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
741 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
742 2e1f37b0 2019-08-08 stsp fi
743 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
744 2e1f37b0 2019-08-08 stsp }
745 2e1f37b0 2019-08-08 stsp
746 f6cae3ed 2020-09-13 naddy test_unstage_patch_removed() {
747 2e1f37b0 2019-08-08 stsp local testroot=`test_init unstage_patch_removed`
748 2e1f37b0 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
749 2e1f37b0 2019-08-08 stsp
750 2e1f37b0 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
751 49c543a6 2022-03-31 naddy ret=$?
752 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
753 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
754 2e1f37b0 2019-08-08 stsp return 1
755 2e1f37b0 2019-08-08 stsp fi
756 2e1f37b0 2019-08-08 stsp
757 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got rm beta > /dev/null)
758 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
759 2e1f37b0 2019-08-08 stsp
760 2e1f37b0 2019-08-08 stsp printf "y\n" > $testroot/patchscript
761 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
762 2e1f37b0 2019-08-08 stsp beta > $testroot/stdout)
763 2e1f37b0 2019-08-08 stsp
764 2e1f37b0 2019-08-08 stsp echo "D beta" > $testroot/stdout.expected
765 2e1f37b0 2019-08-08 stsp echo "unstage this deletion? [y/n] y" >> $testroot/stdout.expected
766 2e1f37b0 2019-08-08 stsp echo "D beta" >> $testroot/stdout.expected
767 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
768 49c543a6 2022-03-31 naddy ret=$?
769 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
770 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
771 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
772 2e1f37b0 2019-08-08 stsp return 1
773 2e1f37b0 2019-08-08 stsp fi
774 2e1f37b0 2019-08-08 stsp
775 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
776 2e1f37b0 2019-08-08 stsp echo "D beta" > $testroot/stdout.expected
777 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
778 49c543a6 2022-03-31 naddy ret=$?
779 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
780 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
781 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
782 2e1f37b0 2019-08-08 stsp return 1
783 2e1f37b0 2019-08-08 stsp fi
784 2e1f37b0 2019-08-08 stsp
785 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
786 2e1f37b0 2019-08-08 stsp echo -n > $testroot/stdout.expected
787 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
788 49c543a6 2022-03-31 naddy ret=$?
789 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
790 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
791 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
792 2e1f37b0 2019-08-08 stsp return 1
793 2e1f37b0 2019-08-08 stsp fi
794 2e1f37b0 2019-08-08 stsp
795 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
796 2e1f37b0 2019-08-08 stsp
797 8469d821 2022-06-25 stsp echo "diff $testroot/wt" > $testroot/stdout.expected
798 8469d821 2022-06-25 stsp echo "commit - $commit_id" >> $testroot/stdout.expected
799 8469d821 2022-06-25 stsp echo "path + $testroot/wt" >> $testroot/stdout.expected
800 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
801 2e1f37b0 2019-08-08 stsp got tree -r $testroot/repo -i | grep 'beta$' | cut -d' ' -f 1 \
802 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
803 2e1f37b0 2019-08-08 stsp echo 'file + /dev/null' >> $testroot/stdout.expected
804 2e1f37b0 2019-08-08 stsp echo "--- beta" >> $testroot/stdout.expected
805 1cb46f00 2020-11-21 stsp echo "+++ /dev/null" >> $testroot/stdout.expected
806 2e1f37b0 2019-08-08 stsp echo "@@ -1 +0,0 @@" >> $testroot/stdout.expected
807 2e1f37b0 2019-08-08 stsp echo "-beta" >> $testroot/stdout.expected
808 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
809 49c543a6 2022-03-31 naddy ret=$?
810 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
811 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
812 2e1f37b0 2019-08-08 stsp fi
813 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
814 2e1f37b0 2019-08-08 stsp }
815 19e4b907 2019-08-08 stsp
816 f6cae3ed 2020-09-13 naddy test_unstage_patch_quit() {
817 19e4b907 2019-08-08 stsp local testroot=`test_init unstage_patch_quit`
818 19e4b907 2019-08-08 stsp
819 19e4b907 2019-08-08 stsp jot 16 > $testroot/repo/numbers
820 19e4b907 2019-08-08 stsp echo zzz > $testroot/repo/zzz
821 19e4b907 2019-08-08 stsp (cd $testroot/repo && git add numbers zzz)
822 19e4b907 2019-08-08 stsp git_commit $testroot/repo -m "added files"
823 19e4b907 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
824 19e4b907 2019-08-08 stsp
825 19e4b907 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
826 49c543a6 2022-03-31 naddy ret=$?
827 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
828 19e4b907 2019-08-08 stsp test_done "$testroot" "$ret"
829 19e4b907 2019-08-08 stsp return 1
830 19e4b907 2019-08-08 stsp fi
831 2e1f37b0 2019-08-08 stsp
832 19e4b907 2019-08-08 stsp sed -i -e 's/^2$/a/' $testroot/wt/numbers
833 19e4b907 2019-08-08 stsp sed -i -e 's/^7$/b/' $testroot/wt/numbers
834 19e4b907 2019-08-08 stsp sed -i -e 's/^16$/c/' $testroot/wt/numbers
835 19e4b907 2019-08-08 stsp (cd $testroot/wt && got rm zzz > /dev/null)
836 19e4b907 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
837 19e4b907 2019-08-08 stsp
838 19e4b907 2019-08-08 stsp # unstage first hunk and quit; and don't pass a path argument to
839 19e4b907 2019-08-08 stsp # ensure that we don't skip asking about the 'zzz' file after 'quit'
840 19e4b907 2019-08-08 stsp printf "y\nq\nn\n" > $testroot/patchscript
841 19e4b907 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
842 19e4b907 2019-08-08 stsp > $testroot/stdout)
843 49c543a6 2022-03-31 naddy ret=$?
844 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
845 57ba6a8b 2019-08-08 stsp echo "got unstage command failed unexpectedly" >&2
846 19e4b907 2019-08-08 stsp test_done "$testroot" "1"
847 19e4b907 2019-08-08 stsp return 1
848 19e4b907 2019-08-08 stsp fi
849 19e4b907 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
850 19e4b907 2019-08-08 stsp -----------------------------------------------
851 19e4b907 2019-08-08 stsp @@ -1,5 +1,5 @@
852 19e4b907 2019-08-08 stsp 1
853 19e4b907 2019-08-08 stsp -2
854 19e4b907 2019-08-08 stsp +a
855 19e4b907 2019-08-08 stsp 3
856 19e4b907 2019-08-08 stsp 4
857 19e4b907 2019-08-08 stsp 5
858 19e4b907 2019-08-08 stsp -----------------------------------------------
859 19e4b907 2019-08-08 stsp M numbers (change 1 of 3)
860 19e4b907 2019-08-08 stsp unstage this change? [y/n/q] y
861 19e4b907 2019-08-08 stsp -----------------------------------------------
862 19e4b907 2019-08-08 stsp @@ -4,7 +4,7 @@
863 19e4b907 2019-08-08 stsp 4
864 19e4b907 2019-08-08 stsp 5
865 19e4b907 2019-08-08 stsp 6
866 19e4b907 2019-08-08 stsp -7
867 19e4b907 2019-08-08 stsp +b
868 19e4b907 2019-08-08 stsp 8
869 19e4b907 2019-08-08 stsp 9
870 19e4b907 2019-08-08 stsp 10
871 19e4b907 2019-08-08 stsp -----------------------------------------------
872 19e4b907 2019-08-08 stsp M numbers (change 2 of 3)
873 19e4b907 2019-08-08 stsp unstage this change? [y/n/q] q
874 19e4b907 2019-08-08 stsp G numbers
875 19e4b907 2019-08-08 stsp D zzz
876 19e4b907 2019-08-08 stsp unstage this deletion? [y/n] n
877 19e4b907 2019-08-08 stsp EOF
878 19e4b907 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
879 49c543a6 2022-03-31 naddy ret=$?
880 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
881 19e4b907 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
882 19e4b907 2019-08-08 stsp test_done "$testroot" "$ret"
883 19e4b907 2019-08-08 stsp return 1
884 19e4b907 2019-08-08 stsp fi
885 19e4b907 2019-08-08 stsp
886 19e4b907 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
887 19e4b907 2019-08-08 stsp echo "MM numbers" > $testroot/stdout.expected
888 19e4b907 2019-08-08 stsp echo " D zzz" >> $testroot/stdout.expected
889 19e4b907 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
890 49c543a6 2022-03-31 naddy ret=$?
891 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
892 19e4b907 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
893 19e4b907 2019-08-08 stsp test_done "$testroot" "$ret"
894 19e4b907 2019-08-08 stsp return 1
895 19e4b907 2019-08-08 stsp fi
896 19e4b907 2019-08-08 stsp
897 19e4b907 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
898 19e4b907 2019-08-08 stsp
899 8469d821 2022-06-25 stsp echo "diff $testroot/wt" > $testroot/stdout.expected
900 8469d821 2022-06-25 stsp echo "commit - $commit_id" >> $testroot/stdout.expected
901 8469d821 2022-06-25 stsp echo "path + $testroot/wt" >> $testroot/stdout.expected
902 19e4b907 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
903 4ce46740 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 | \
904 4ce46740 2019-08-08 stsp tr -d '\n' >> $testroot/stdout.expected
905 4ce46740 2019-08-08 stsp echo " (staged)" >> $testroot/stdout.expected
906 19e4b907 2019-08-08 stsp echo "file + numbers" >> $testroot/stdout.expected
907 19e4b907 2019-08-08 stsp echo "--- numbers" >> $testroot/stdout.expected
908 19e4b907 2019-08-08 stsp echo "+++ numbers" >> $testroot/stdout.expected
909 19e4b907 2019-08-08 stsp echo "@@ -1,5 +1,5 @@" >> $testroot/stdout.expected
910 19e4b907 2019-08-08 stsp echo " 1" >> $testroot/stdout.expected
911 19e4b907 2019-08-08 stsp echo "-2" >> $testroot/stdout.expected
912 19e4b907 2019-08-08 stsp echo "+a" >> $testroot/stdout.expected
913 19e4b907 2019-08-08 stsp echo " 3" >> $testroot/stdout.expected
914 19e4b907 2019-08-08 stsp echo " 4" >> $testroot/stdout.expected
915 19e4b907 2019-08-08 stsp echo " 5" >> $testroot/stdout.expected
916 19e4b907 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
917 49c543a6 2022-03-31 naddy ret=$?
918 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
919 19e4b907 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
920 19e4b907 2019-08-08 stsp test_done "$testroot" "$ret"
921 19e4b907 2019-08-08 stsp return 1
922 19e4b907 2019-08-08 stsp fi
923 19e4b907 2019-08-08 stsp
924 19e4b907 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
925 8469d821 2022-06-25 stsp echo "diff -s $testroot/wt" > $testroot/stdout.expected
926 8469d821 2022-06-25 stsp echo "commit - $commit_id" >> $testroot/stdout.expected
927 8469d821 2022-06-25 stsp echo "path + $testroot/wt (staged changes)" >> $testroot/stdout.expected
928 19e4b907 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
929 19e4b907 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
930 19e4b907 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
931 19e4b907 2019-08-08 stsp >> $testroot/stdout.expected
932 19e4b907 2019-08-08 stsp echo -n 'blob + ' >> $testroot/stdout.expected
933 19e4b907 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 \
934 19e4b907 2019-08-08 stsp >> $testroot/stdout.expected
935 19e4b907 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
936 19e4b907 2019-08-08 stsp --- numbers
937 19e4b907 2019-08-08 stsp +++ numbers
938 19e4b907 2019-08-08 stsp @@ -4,7 +4,7 @@
939 19e4b907 2019-08-08 stsp 4
940 19e4b907 2019-08-08 stsp 5
941 19e4b907 2019-08-08 stsp 6
942 19e4b907 2019-08-08 stsp -7
943 19e4b907 2019-08-08 stsp +b
944 19e4b907 2019-08-08 stsp 8
945 19e4b907 2019-08-08 stsp 9
946 19e4b907 2019-08-08 stsp 10
947 19e4b907 2019-08-08 stsp @@ -13,4 +13,4 @@
948 19e4b907 2019-08-08 stsp 13
949 19e4b907 2019-08-08 stsp 14
950 19e4b907 2019-08-08 stsp 15
951 19e4b907 2019-08-08 stsp -16
952 19e4b907 2019-08-08 stsp +c
953 19e4b907 2019-08-08 stsp EOF
954 19e4b907 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
955 19e4b907 2019-08-08 stsp got tree -r $testroot/repo -i | grep 'zzz$' | cut -d' ' -f 1 \
956 19e4b907 2019-08-08 stsp >> $testroot/stdout.expected
957 19e4b907 2019-08-08 stsp echo 'blob + /dev/null' >> $testroot/stdout.expected
958 19e4b907 2019-08-08 stsp echo "--- zzz" >> $testroot/stdout.expected
959 19e4b907 2019-08-08 stsp echo "+++ /dev/null" >> $testroot/stdout.expected
960 19e4b907 2019-08-08 stsp echo "@@ -1 +0,0 @@" >> $testroot/stdout.expected
961 19e4b907 2019-08-08 stsp echo "-zzz" >> $testroot/stdout.expected
962 19e4b907 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
963 49c543a6 2022-03-31 naddy ret=$?
964 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
965 19e4b907 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
966 19e4b907 2019-08-08 stsp fi
967 19e4b907 2019-08-08 stsp test_done "$testroot" "$ret"
968 19e4b907 2019-08-08 stsp }
969 ea7786be 2020-07-23 stsp
970 f6cae3ed 2020-09-13 naddy test_unstage_symlink() {
971 ea7786be 2020-07-23 stsp local testroot=`test_init unstage_symlink`
972 ea7786be 2020-07-23 stsp
973 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s alpha alpha.link)
974 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s epsilon epsilon.link)
975 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s /etc/passwd passwd.link)
976 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s ../beta epsilon/beta.link)
977 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s nonexistent nonexistent.link)
978 ea7786be 2020-07-23 stsp (cd $testroot/repo && git add .)
979 ea7786be 2020-07-23 stsp git_commit $testroot/repo -m "add symlinks"
980 ea7786be 2020-07-23 stsp local head_commit=`git_show_head $testroot/repo`
981 19e4b907 2019-08-08 stsp
982 ea7786be 2020-07-23 stsp got checkout $testroot/repo $testroot/wt > /dev/null
983 49c543a6 2022-03-31 naddy ret=$?
984 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
985 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
986 ea7786be 2020-07-23 stsp return 1
987 ea7786be 2020-07-23 stsp fi
988 ea7786be 2020-07-23 stsp
989 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sf beta alpha.link)
990 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sfh gamma epsilon.link)
991 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sf ../gamma/delta epsilon/beta.link)
992 ea7786be 2020-07-23 stsp echo 'this is regular file foo' > $testroot/wt/dotgotfoo.link
993 ea7786be 2020-07-23 stsp (cd $testroot/wt && got add dotgotfoo.link > /dev/null)
994 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sf .got/bar dotgotbar.link)
995 ea7786be 2020-07-23 stsp (cd $testroot/wt && got add dotgotbar.link > /dev/null)
996 ea7786be 2020-07-23 stsp (cd $testroot/wt && got rm nonexistent.link > /dev/null)
997 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sf gamma/delta zeta.link)
998 ea7786be 2020-07-23 stsp (cd $testroot/wt && got add zeta.link > /dev/null)
999 ea7786be 2020-07-23 stsp
1000 35213c7c 2020-07-23 stsp (cd $testroot/wt && got stage -S > /dev/null)
1001 ea7786be 2020-07-23 stsp
1002 ea7786be 2020-07-23 stsp (cd $testroot/wt && got status > $testroot/stdout)
1003 ea7786be 2020-07-23 stsp cat > $testroot/stdout.expected <<EOF
1004 ea7786be 2020-07-23 stsp M alpha.link
1005 ea7786be 2020-07-23 stsp A dotgotbar.link
1006 ea7786be 2020-07-23 stsp A dotgotfoo.link
1007 ea7786be 2020-07-23 stsp M epsilon/beta.link
1008 ea7786be 2020-07-23 stsp M epsilon.link
1009 ea7786be 2020-07-23 stsp D nonexistent.link
1010 ea7786be 2020-07-23 stsp A zeta.link
1011 ea7786be 2020-07-23 stsp EOF
1012 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1013 49c543a6 2022-03-31 naddy ret=$?
1014 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1015 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1016 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1017 ea7786be 2020-07-23 stsp return 1
1018 ea7786be 2020-07-23 stsp fi
1019 ea7786be 2020-07-23 stsp
1020 ea7786be 2020-07-23 stsp (cd $testroot/wt && got unstage > $testroot/stdout)
1021 49c543a6 2022-03-31 naddy ret=$?
1022 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1023 ea7786be 2020-07-23 stsp echo "got unstage command failed unexpectedly" >&2
1024 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1025 ea7786be 2020-07-23 stsp return 1
1026 ea7786be 2020-07-23 stsp fi
1027 ea7786be 2020-07-23 stsp
1028 ea7786be 2020-07-23 stsp cat > $testroot/stdout.expected <<EOF
1029 ea7786be 2020-07-23 stsp G alpha.link
1030 ea7786be 2020-07-23 stsp G dotgotbar.link
1031 ea7786be 2020-07-23 stsp G dotgotfoo.link
1032 ea7786be 2020-07-23 stsp G epsilon/beta.link
1033 ea7786be 2020-07-23 stsp G epsilon.link
1034 ea7786be 2020-07-23 stsp D nonexistent.link
1035 ea7786be 2020-07-23 stsp G zeta.link
1036 ea7786be 2020-07-23 stsp EOF
1037 ea7786be 2020-07-23 stsp
1038 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1039 49c543a6 2022-03-31 naddy ret=$?
1040 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1041 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1042 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1043 ea7786be 2020-07-23 stsp return 1
1044 ea7786be 2020-07-23 stsp fi
1045 ea7786be 2020-07-23 stsp
1046 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/alpha.link ]; then
1047 ea7786be 2020-07-23 stsp echo "alpha.link is not a symlink"
1048 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1049 ea7786be 2020-07-23 stsp return 1
1050 ea7786be 2020-07-23 stsp fi
1051 ea7786be 2020-07-23 stsp
1052 ea7786be 2020-07-23 stsp readlink $testroot/wt/alpha.link > $testroot/stdout
1053 ea7786be 2020-07-23 stsp echo "beta" > $testroot/stdout.expected
1054 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1055 49c543a6 2022-03-31 naddy ret=$?
1056 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1057 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1058 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1059 ea7786be 2020-07-23 stsp return 1
1060 ea7786be 2020-07-23 stsp fi
1061 ea7786be 2020-07-23 stsp
1062 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/epsilon.link ]; then
1063 ea7786be 2020-07-23 stsp echo "epsilon.link is not a symlink"
1064 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1065 ea7786be 2020-07-23 stsp return 1
1066 ea7786be 2020-07-23 stsp fi
1067 ea7786be 2020-07-23 stsp
1068 ea7786be 2020-07-23 stsp readlink $testroot/wt/epsilon.link > $testroot/stdout
1069 ea7786be 2020-07-23 stsp echo "gamma" > $testroot/stdout.expected
1070 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1071 49c543a6 2022-03-31 naddy ret=$?
1072 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1073 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1074 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1075 ea7786be 2020-07-23 stsp return 1
1076 ea7786be 2020-07-23 stsp fi
1077 ea7786be 2020-07-23 stsp
1078 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/epsilon/beta.link ]; then
1079 ea7786be 2020-07-23 stsp echo "epsilon/beta.link is not a symlink"
1080 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1081 ea7786be 2020-07-23 stsp return 1
1082 ea7786be 2020-07-23 stsp fi
1083 ea7786be 2020-07-23 stsp
1084 ea7786be 2020-07-23 stsp readlink $testroot/wt/epsilon/beta.link > $testroot/stdout
1085 ea7786be 2020-07-23 stsp echo "../gamma/delta" > $testroot/stdout.expected
1086 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1087 49c543a6 2022-03-31 naddy ret=$?
1088 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1089 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1090 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1091 ea7786be 2020-07-23 stsp return 1
1092 ea7786be 2020-07-23 stsp fi
1093 ea7786be 2020-07-23 stsp
1094 ea7786be 2020-07-23 stsp if [ ! -f $testroot/wt/dotgotfoo.link ]; then
1095 ea7786be 2020-07-23 stsp echo "dotgotfoo.link is a symlink"
1096 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1097 ea7786be 2020-07-23 stsp return 1
1098 ea7786be 2020-07-23 stsp fi
1099 ea7786be 2020-07-23 stsp
1100 ea7786be 2020-07-23 stsp echo "this is regular file foo" > $testroot/content.expected
1101 ea7786be 2020-07-23 stsp cp $testroot/wt/dotgotfoo.link $testroot/content
1102 ea7786be 2020-07-23 stsp cmp -s $testroot/content.expected $testroot/content
1103 49c543a6 2022-03-31 naddy ret=$?
1104 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1105 ea7786be 2020-07-23 stsp diff -u $testroot/content.expected $testroot/content
1106 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1107 ea7786be 2020-07-23 stsp return 1
1108 ea7786be 2020-07-23 stsp fi
1109 ea7786be 2020-07-23 stsp
1110 ea7786be 2020-07-23 stsp # bad symlinks are allowed as-is for commit and stage/unstage
1111 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/dotgotbar.link ]; then
1112 ea7786be 2020-07-23 stsp echo "dotgotbar.link is not a symlink"
1113 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1114 ea7786be 2020-07-23 stsp return 1
1115 ea7786be 2020-07-23 stsp fi
1116 ea7786be 2020-07-23 stsp
1117 ea7786be 2020-07-23 stsp readlink $testroot/wt/dotgotbar.link > $testroot/stdout
1118 ea7786be 2020-07-23 stsp echo ".got/bar" > $testroot/stdout.expected
1119 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1120 49c543a6 2022-03-31 naddy ret=$?
1121 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1122 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1123 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1124 ea7786be 2020-07-23 stsp return 1
1125 ea7786be 2020-07-23 stsp fi
1126 ea7786be 2020-07-23 stsp
1127 ea7786be 2020-07-23 stsp if [ -e $testroot/wt/nonexistent.link ]; then
1128 ea7786be 2020-07-23 stsp echo "nonexistent.link exists on disk"
1129 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1130 ea7786be 2020-07-23 stsp return 1
1131 ea7786be 2020-07-23 stsp fi
1132 ea7786be 2020-07-23 stsp
1133 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/zeta.link ]; then
1134 ea7786be 2020-07-23 stsp echo "zeta.link is not a symlink"
1135 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1136 ea7786be 2020-07-23 stsp return 1
1137 ea7786be 2020-07-23 stsp fi
1138 ea7786be 2020-07-23 stsp
1139 ea7786be 2020-07-23 stsp readlink $testroot/wt/zeta.link > $testroot/stdout
1140 ea7786be 2020-07-23 stsp echo "gamma/delta" > $testroot/stdout.expected
1141 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1142 49c543a6 2022-03-31 naddy ret=$?
1143 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1144 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1145 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1146 ea7786be 2020-07-23 stsp return 1
1147 ea7786be 2020-07-23 stsp fi
1148 ea7786be 2020-07-23 stsp
1149 ea7786be 2020-07-23 stsp test_done "$testroot" "0"
1150 ea7786be 2020-07-23 stsp }
1151 36bf999c 2020-07-23 stsp
1152 f6cae3ed 2020-09-13 naddy test_unstage_patch_symlink() {
1153 36bf999c 2020-07-23 stsp local testroot=`test_init unstage_patch_symlink`
1154 36bf999c 2020-07-23 stsp
1155 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s alpha alpha.link)
1156 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s epsilon epsilon.link)
1157 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s /etc/passwd passwd.link)
1158 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s ../beta epsilon/beta.link)
1159 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s nonexistent nonexistent.link)
1160 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -sf epsilon/zeta zeta.link)
1161 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -sf epsilon/zeta zeta2.link)
1162 36bf999c 2020-07-23 stsp (cd $testroot/repo && git add .)
1163 36bf999c 2020-07-23 stsp git_commit $testroot/repo -m "add symlinks"
1164 36bf999c 2020-07-23 stsp local commit_id1=`git_show_head $testroot/repo`
1165 36bf999c 2020-07-23 stsp
1166 36bf999c 2020-07-23 stsp got checkout $testroot/repo $testroot/wt > /dev/null
1167 49c543a6 2022-03-31 naddy ret=$?
1168 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1169 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1170 36bf999c 2020-07-23 stsp return 1
1171 36bf999c 2020-07-23 stsp fi
1172 36bf999c 2020-07-23 stsp
1173 36bf999c 2020-07-23 stsp # symlink to file A now points to file B
1174 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf gamma/delta alpha.link)
1175 36bf999c 2020-07-23 stsp # symlink to a directory A now points to file B
1176 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sfh beta epsilon.link)
1177 36bf999c 2020-07-23 stsp # "bad" symlink now contains a different target path
1178 36bf999c 2020-07-23 stsp echo "foo" > $testroot/wt/passwd.link
1179 36bf999c 2020-07-23 stsp # relative symlink to directory A now points to relative directory B
1180 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sfh ../gamma epsilon/beta.link)
1181 36bf999c 2020-07-23 stsp # an unversioned symlink
1182 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf .got/foo dotgotfoo.link)
1183 36bf999c 2020-07-23 stsp # symlink to file A now points to non-existent file B
1184 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf nonexistent2 nonexistent.link)
1185 36bf999c 2020-07-23 stsp # removed symlink
1186 36bf999c 2020-07-23 stsp (cd $testroot/wt && got rm zeta.link > /dev/null)
1187 36bf999c 2020-07-23 stsp (cd $testroot/wt && got rm zeta2.link > /dev/null)
1188 36bf999c 2020-07-23 stsp # added symlink
1189 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf beta new.link)
1190 36bf999c 2020-07-23 stsp (cd $testroot/wt && got add new.link > /dev/null)
1191 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf beta zeta3.link)
1192 36bf999c 2020-07-23 stsp (cd $testroot/wt && got add zeta3.link > /dev/null)
1193 ea7786be 2020-07-23 stsp
1194 36bf999c 2020-07-23 stsp (cd $testroot/wt && got stage -S > /dev/null)
1195 36bf999c 2020-07-23 stsp
1196 36bf999c 2020-07-23 stsp (cd $testroot/wt && got status > $testroot/stdout)
1197 36bf999c 2020-07-23 stsp cat > $testroot/stdout.expected <<EOF
1198 36bf999c 2020-07-23 stsp M alpha.link
1199 36bf999c 2020-07-23 stsp ? dotgotfoo.link
1200 36bf999c 2020-07-23 stsp M epsilon/beta.link
1201 36bf999c 2020-07-23 stsp M epsilon.link
1202 36bf999c 2020-07-23 stsp A new.link
1203 36bf999c 2020-07-23 stsp M nonexistent.link
1204 36bf999c 2020-07-23 stsp M passwd.link
1205 36bf999c 2020-07-23 stsp D zeta.link
1206 36bf999c 2020-07-23 stsp D zeta2.link
1207 36bf999c 2020-07-23 stsp A zeta3.link
1208 36bf999c 2020-07-23 stsp EOF
1209 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1210 49c543a6 2022-03-31 naddy ret=$?
1211 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1212 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1213 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1214 36bf999c 2020-07-23 stsp return 1
1215 36bf999c 2020-07-23 stsp fi
1216 36bf999c 2020-07-23 stsp
1217 36bf999c 2020-07-23 stsp printf "y\nn\ny\nn\ny\ny\nn\ny\ny\n" > $testroot/patchscript
1218 36bf999c 2020-07-23 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
1219 36bf999c 2020-07-23 stsp > $testroot/stdout)
1220 49c543a6 2022-03-31 naddy ret=$?
1221 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1222 36bf999c 2020-07-23 stsp echo "got unstage command failed unexpectedly" >&2
1223 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1224 36bf999c 2020-07-23 stsp return 1
1225 36bf999c 2020-07-23 stsp fi
1226 36bf999c 2020-07-23 stsp
1227 36bf999c 2020-07-23 stsp cat > $testroot/stdout.expected <<EOF
1228 36bf999c 2020-07-23 stsp -----------------------------------------------
1229 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1230 36bf999c 2020-07-23 stsp -alpha
1231 36bf999c 2020-07-23 stsp \ No newline at end of file
1232 36bf999c 2020-07-23 stsp +gamma/delta
1233 36bf999c 2020-07-23 stsp \ No newline at end of file
1234 36bf999c 2020-07-23 stsp -----------------------------------------------
1235 36bf999c 2020-07-23 stsp M alpha.link (change 1 of 1)
1236 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] y
1237 36bf999c 2020-07-23 stsp G alpha.link
1238 36bf999c 2020-07-23 stsp -----------------------------------------------
1239 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1240 36bf999c 2020-07-23 stsp -../beta
1241 36bf999c 2020-07-23 stsp \ No newline at end of file
1242 36bf999c 2020-07-23 stsp +../gamma
1243 36bf999c 2020-07-23 stsp \ No newline at end of file
1244 36bf999c 2020-07-23 stsp -----------------------------------------------
1245 36bf999c 2020-07-23 stsp M epsilon/beta.link (change 1 of 1)
1246 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] n
1247 36bf999c 2020-07-23 stsp -----------------------------------------------
1248 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1249 36bf999c 2020-07-23 stsp -epsilon
1250 36bf999c 2020-07-23 stsp \ No newline at end of file
1251 36bf999c 2020-07-23 stsp +beta
1252 36bf999c 2020-07-23 stsp \ No newline at end of file
1253 36bf999c 2020-07-23 stsp -----------------------------------------------
1254 36bf999c 2020-07-23 stsp M epsilon.link (change 1 of 1)
1255 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] y
1256 36bf999c 2020-07-23 stsp G epsilon.link
1257 36bf999c 2020-07-23 stsp A new.link
1258 36bf999c 2020-07-23 stsp unstage this addition? [y/n] n
1259 36bf999c 2020-07-23 stsp -----------------------------------------------
1260 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1261 36bf999c 2020-07-23 stsp -nonexistent
1262 36bf999c 2020-07-23 stsp \ No newline at end of file
1263 36bf999c 2020-07-23 stsp +nonexistent2
1264 36bf999c 2020-07-23 stsp \ No newline at end of file
1265 36bf999c 2020-07-23 stsp -----------------------------------------------
1266 36bf999c 2020-07-23 stsp M nonexistent.link (change 1 of 1)
1267 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] y
1268 36bf999c 2020-07-23 stsp G nonexistent.link
1269 36bf999c 2020-07-23 stsp -----------------------------------------------
1270 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1271 36bf999c 2020-07-23 stsp -/etc/passwd
1272 36bf999c 2020-07-23 stsp \ No newline at end of file
1273 36bf999c 2020-07-23 stsp +foo
1274 36bf999c 2020-07-23 stsp -----------------------------------------------
1275 36bf999c 2020-07-23 stsp M passwd.link (change 1 of 1)
1276 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] y
1277 36bf999c 2020-07-23 stsp G passwd.link
1278 36bf999c 2020-07-23 stsp D zeta.link
1279 36bf999c 2020-07-23 stsp unstage this deletion? [y/n] n
1280 36bf999c 2020-07-23 stsp D zeta2.link
1281 36bf999c 2020-07-23 stsp unstage this deletion? [y/n] y
1282 36bf999c 2020-07-23 stsp D zeta2.link
1283 36bf999c 2020-07-23 stsp A zeta3.link
1284 36bf999c 2020-07-23 stsp unstage this addition? [y/n] y
1285 36bf999c 2020-07-23 stsp G zeta3.link
1286 36bf999c 2020-07-23 stsp EOF
1287 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1288 49c543a6 2022-03-31 naddy ret=$?
1289 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1290 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1291 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1292 36bf999c 2020-07-23 stsp return 1
1293 36bf999c 2020-07-23 stsp fi
1294 36bf999c 2020-07-23 stsp
1295 36bf999c 2020-07-23 stsp if ! [ -h $testroot/wt/alpha.link ]; then
1296 36bf999c 2020-07-23 stsp echo "alpha.link is not a symlink"
1297 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1298 36bf999c 2020-07-23 stsp return 1
1299 36bf999c 2020-07-23 stsp fi
1300 36bf999c 2020-07-23 stsp
1301 36bf999c 2020-07-23 stsp readlink $testroot/wt/alpha.link > $testroot/stdout
1302 36bf999c 2020-07-23 stsp echo "gamma/delta" > $testroot/stdout.expected
1303 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1304 49c543a6 2022-03-31 naddy ret=$?
1305 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1306 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1307 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1308 36bf999c 2020-07-23 stsp return 1
1309 36bf999c 2020-07-23 stsp fi
1310 36bf999c 2020-07-23 stsp
1311 36bf999c 2020-07-23 stsp if ! [ -h $testroot/wt/epsilon.link ]; then
1312 36bf999c 2020-07-23 stsp echo "epsilon.link is not a symlink"
1313 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1314 36bf999c 2020-07-23 stsp return 1
1315 36bf999c 2020-07-23 stsp fi
1316 36bf999c 2020-07-23 stsp
1317 36bf999c 2020-07-23 stsp readlink $testroot/wt/epsilon.link > $testroot/stdout
1318 36bf999c 2020-07-23 stsp echo "beta" > $testroot/stdout.expected
1319 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1320 49c543a6 2022-03-31 naddy ret=$?
1321 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1322 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1323 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1324 36bf999c 2020-07-23 stsp return 1
1325 36bf999c 2020-07-23 stsp fi
1326 36bf999c 2020-07-23 stsp
1327 36bf999c 2020-07-23 stsp if [ -h $testroot/wt/passwd.link ]; then
1328 36bf999c 2020-07-23 stsp echo "passwd.link should not be a symlink" >&2
1329 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1330 36bf999c 2020-07-23 stsp return 1
1331 36bf999c 2020-07-23 stsp fi
1332 36bf999c 2020-07-23 stsp
1333 36bf999c 2020-07-23 stsp echo "foo" > $testroot/content.expected
1334 36bf999c 2020-07-23 stsp cp $testroot/wt/passwd.link $testroot/content
1335 36bf999c 2020-07-23 stsp
1336 36bf999c 2020-07-23 stsp cmp -s $testroot/content.expected $testroot/content
1337 49c543a6 2022-03-31 naddy ret=$?
1338 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1339 36bf999c 2020-07-23 stsp diff -u $testroot/content.expected $testroot/content
1340 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1341 36bf999c 2020-07-23 stsp return 1
1342 36bf999c 2020-07-23 stsp fi
1343 36bf999c 2020-07-23 stsp
1344 36bf999c 2020-07-23 stsp readlink $testroot/wt/epsilon/beta.link > $testroot/stdout
1345 36bf999c 2020-07-23 stsp echo "../gamma" > $testroot/stdout.expected
1346 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1347 49c543a6 2022-03-31 naddy ret=$?
1348 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1349 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1350 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1351 36bf999c 2020-07-23 stsp return 1
1352 36bf999c 2020-07-23 stsp fi
1353 36bf999c 2020-07-23 stsp
1354 36bf999c 2020-07-23 stsp readlink $testroot/wt/nonexistent.link > $testroot/stdout
1355 36bf999c 2020-07-23 stsp echo "nonexistent2" > $testroot/stdout.expected
1356 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1357 49c543a6 2022-03-31 naddy ret=$?
1358 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1359 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1360 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1361 36bf999c 2020-07-23 stsp return 1
1362 36bf999c 2020-07-23 stsp fi
1363 36bf999c 2020-07-23 stsp
1364 36bf999c 2020-07-23 stsp if [ ! -h $testroot/wt/dotgotfoo.link ]; then
1365 36bf999c 2020-07-23 stsp echo "dotgotfoo.link is not a symlink " >&2
1366 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1367 36bf999c 2020-07-23 stsp return 1
1368 36bf999c 2020-07-23 stsp fi
1369 36bf999c 2020-07-23 stsp readlink $testroot/wt/dotgotfoo.link > $testroot/stdout
1370 36bf999c 2020-07-23 stsp echo ".got/foo" > $testroot/stdout.expected
1371 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1372 49c543a6 2022-03-31 naddy ret=$?
1373 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1374 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1375 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1376 36bf999c 2020-07-23 stsp return 1
1377 36bf999c 2020-07-23 stsp fi
1378 36bf999c 2020-07-23 stsp
1379 36bf999c 2020-07-23 stsp
1380 36bf999c 2020-07-23 stsp if [ -e $testroot/wt/zeta.link ]; then
1381 36bf999c 2020-07-23 stsp echo -n "zeta.link should not exist on disk" >&2
1382 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1383 36bf999c 2020-07-23 stsp return 1
1384 36bf999c 2020-07-23 stsp fi
1385 36bf999c 2020-07-23 stsp
1386 36bf999c 2020-07-23 stsp if [ -e $testroot/wt/zeta2.link ]; then
1387 36bf999c 2020-07-23 stsp echo -n "zeta2.link exists on disk" >&2
1388 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1389 36bf999c 2020-07-23 stsp return 1
1390 36bf999c 2020-07-23 stsp fi
1391 36bf999c 2020-07-23 stsp
1392 36bf999c 2020-07-23 stsp if [ ! -h $testroot/wt/zeta3.link ]; then
1393 36bf999c 2020-07-23 stsp echo -n "zeta3.link is not a symlink" >&2
1394 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1395 36bf999c 2020-07-23 stsp return 1
1396 36bf999c 2020-07-23 stsp fi
1397 36bf999c 2020-07-23 stsp
1398 36bf999c 2020-07-23 stsp readlink $testroot/wt/zeta3.link > $testroot/stdout
1399 36bf999c 2020-07-23 stsp echo "beta" > $testroot/stdout.expected
1400 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1401 49c543a6 2022-03-31 naddy ret=$?
1402 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1403 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1404 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1405 36bf999c 2020-07-23 stsp return 1
1406 36bf999c 2020-07-23 stsp fi
1407 36bf999c 2020-07-23 stsp
1408 36bf999c 2020-07-23 stsp if [ ! -h $testroot/wt/new.link ]; then
1409 36bf999c 2020-07-23 stsp echo -n "new.link is not a symlink" >&2
1410 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1411 36bf999c 2020-07-23 stsp return 1
1412 36bf999c 2020-07-23 stsp fi
1413 36bf999c 2020-07-23 stsp
1414 36bf999c 2020-07-23 stsp (cd $testroot/wt && got status > $testroot/stdout)
1415 36bf999c 2020-07-23 stsp echo "M alpha.link" > $testroot/stdout.expected
1416 36bf999c 2020-07-23 stsp echo "? dotgotfoo.link" >> $testroot/stdout.expected
1417 36bf999c 2020-07-23 stsp echo " M epsilon/beta.link" >> $testroot/stdout.expected
1418 36bf999c 2020-07-23 stsp echo "M epsilon.link" >> $testroot/stdout.expected
1419 36bf999c 2020-07-23 stsp echo " A new.link" >> $testroot/stdout.expected
1420 36bf999c 2020-07-23 stsp echo "M nonexistent.link" >> $testroot/stdout.expected
1421 36bf999c 2020-07-23 stsp echo "M passwd.link" >> $testroot/stdout.expected
1422 36bf999c 2020-07-23 stsp echo " D zeta.link" >> $testroot/stdout.expected
1423 36bf999c 2020-07-23 stsp echo "D zeta2.link" >> $testroot/stdout.expected
1424 36bf999c 2020-07-23 stsp echo "A zeta3.link" >> $testroot/stdout.expected
1425 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1426 49c543a6 2022-03-31 naddy ret=$?
1427 49c543a6 2022-03-31 naddy if [ $ret -ne 0 ]; then
1428 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1429 36bf999c 2020-07-23 stsp return 1
1430 36bf999c 2020-07-23 stsp fi
1431 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1432 36bf999c 2020-07-23 stsp }
1433 36bf999c 2020-07-23 stsp
1434 7fb414ae 2020-08-08 stsp test_parseargs "$@"
1435 ad493afc 2019-08-03 stsp run_test test_unstage_basic
1436 8b13ce36 2019-08-08 stsp run_test test_unstage_unversioned
1437 8564cb21 2019-08-08 stsp run_test test_unstage_nonexistent
1438 2e1f37b0 2019-08-08 stsp run_test test_unstage_patch
1439 2e1f37b0 2019-08-08 stsp run_test test_unstage_patch_added
1440 2e1f37b0 2019-08-08 stsp run_test test_unstage_patch_removed
1441 19e4b907 2019-08-08 stsp run_test test_unstage_patch_quit
1442 ea7786be 2020-07-23 stsp run_test test_unstage_symlink
1443 36bf999c 2020-07-23 stsp run_test test_unstage_patch_symlink