3 ad493afc 2019-08-03 stsp # Copyright (c) 2019 Stefan Sperling <stsp@openbsd.org>
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.
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.
17 ad493afc 2019-08-03 stsp . ./common.sh
19 f6cae3ed 2020-09-13 naddy test_unstage_basic() {
20 ad493afc 2019-08-03 stsp local testroot=`test_init unstage_basic`
22 ad493afc 2019-08-03 stsp got checkout $testroot/repo $testroot/wt > /dev/null
24 ad493afc 2019-08-03 stsp if [ "$ret" != "0" ]; then
25 ad493afc 2019-08-03 stsp test_done "$testroot" "$ret"
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)
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)
39 ad493afc 2019-08-03 stsp (cd $testroot/wt && got unstage > $testroot/stdout)
41 ad493afc 2019-08-03 stsp if [ "$ret" != "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"
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
52 ad493afc 2019-08-03 stsp if [ "$ret" != "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"
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
64 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
65 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
67 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
70 f6cae3ed 2020-09-13 naddy test_unstage_unversioned() {
71 8b13ce36 2019-08-08 stsp local testroot=`test_init unstage_unversioned`
73 8b13ce36 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
75 8b13ce36 2019-08-08 stsp if [ "$ret" != "0" ]; then
76 8b13ce36 2019-08-08 stsp test_done "$testroot" "$ret"
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)
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)
90 8b13ce36 2019-08-08 stsp touch $testroot/wt/unversioned-file
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
99 8b13ce36 2019-08-08 stsp if [ "$ret" != "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"
105 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got unstage > $testroot/stdout)
107 8b13ce36 2019-08-08 stsp if [ "$ret" != "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"
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
118 8b13ce36 2019-08-08 stsp if [ "$ret" != "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"
124 8b13ce36 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
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)
129 8b13ce36 2019-08-08 stsp if [ "$ret" != "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"
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
142 8b13ce36 2019-08-08 stsp if [ "$ret" != "0" ]; then
143 8b13ce36 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
145 8b13ce36 2019-08-08 stsp test_done "$testroot" "$ret"
148 f6cae3ed 2020-09-13 naddy test_unstage_nonexistent() {
149 8564cb21 2019-08-08 stsp local testroot=`test_init unstage_nonexistent`
151 8564cb21 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
153 8564cb21 2019-08-08 stsp if [ "$ret" != "0" ]; then
154 8564cb21 2019-08-08 stsp test_done "$testroot" "$ret"
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)
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)
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)
171 8564cb21 2019-08-08 stsp if [ "$ret" != "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"
177 8564cb21 2019-08-08 stsp echo -n > $testroot/stdout.expected
178 8564cb21 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
180 8564cb21 2019-08-08 stsp if [ "$ret" != "0" ]; then
181 8564cb21 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
183 8564cb21 2019-08-08 stsp test_done "$testroot" "$ret"
186 f6cae3ed 2020-09-13 naddy test_unstage_patch() {
187 2e1f37b0 2019-08-08 stsp local testroot=`test_init unstage_patch`
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`
194 2e1f37b0 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
196 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
197 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
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
205 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
207 2e1f37b0 2019-08-08 stsp if [ "$ret" != "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"
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)
218 2e1f37b0 2019-08-08 stsp if [ "$ret" != "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"
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 @@
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 @@
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 @@
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
259 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
261 2e1f37b0 2019-08-08 stsp if [ "$ret" != "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"
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
271 2e1f37b0 2019-08-08 stsp if [ "$ret" != "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"
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)
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 @@
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 @@
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 @@
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
319 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
321 2e1f37b0 2019-08-08 stsp if [ "$ret" != "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"
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
331 2e1f37b0 2019-08-08 stsp if [ "$ret" != "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"
337 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
339 2e1f37b0 2019-08-08 stsp echo "diff $commit_id $testroot/wt (staged changes)" \
340 2e1f37b0 2019-08-08 stsp > $testroot/stdout.expected
341 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
342 2e1f37b0 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
343 2e1f37b0 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
344 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
345 2e1f37b0 2019-08-08 stsp echo -n 'blob + ' >> $testroot/stdout.expected
346 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 \
347 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
348 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
349 2e1f37b0 2019-08-08 stsp --- numbers
350 2e1f37b0 2019-08-08 stsp +++ numbers
351 2e1f37b0 2019-08-08 stsp @@ -1,5 +1,5 @@
358 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
365 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
367 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
368 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
369 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
373 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
374 2e1f37b0 2019-08-08 stsp echo "diff $commit_id $testroot/wt" > $testroot/stdout.expected
375 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
376 4ce46740 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 | \
377 4ce46740 2019-08-08 stsp tr -d '\n' >> $testroot/stdout.expected
378 4ce46740 2019-08-08 stsp echo " (staged)" >> $testroot/stdout.expected
379 2e1f37b0 2019-08-08 stsp echo "file + numbers" >> $testroot/stdout.expected
380 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
381 2e1f37b0 2019-08-08 stsp --- numbers
382 2e1f37b0 2019-08-08 stsp +++ numbers
383 2e1f37b0 2019-08-08 stsp @@ -4,7 +4,7 @@ a
393 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
395 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
396 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
397 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
401 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage >/dev/null)
403 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
404 2e1f37b0 2019-08-08 stsp echo "got stage command failed unexpectedly" >&2
405 2e1f37b0 2019-08-08 stsp test_done "$testroot" "1"
409 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
410 2e1f37b0 2019-08-08 stsp echo " M numbers" > $testroot/stdout.expected
411 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
413 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
414 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
415 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
419 2e1f37b0 2019-08-08 stsp # unstage last hunk
420 2e1f37b0 2019-08-08 stsp printf "n\nn\ny\n" > $testroot/patchscript
421 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
422 2e1f37b0 2019-08-08 stsp numbers > $testroot/stdout)
424 2e1f37b0 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
425 2e1f37b0 2019-08-08 stsp -----------------------------------------------
426 2e1f37b0 2019-08-08 stsp @@ -1,5 +1,5 @@
433 2e1f37b0 2019-08-08 stsp -----------------------------------------------
434 2e1f37b0 2019-08-08 stsp M numbers (change 1 of 3)
435 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] n
436 2e1f37b0 2019-08-08 stsp -----------------------------------------------
437 2e1f37b0 2019-08-08 stsp @@ -4,7 +4,7 @@
446 2e1f37b0 2019-08-08 stsp -----------------------------------------------
447 2e1f37b0 2019-08-08 stsp M numbers (change 2 of 3)
448 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] n
449 2e1f37b0 2019-08-08 stsp -----------------------------------------------
450 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
456 2e1f37b0 2019-08-08 stsp -----------------------------------------------
457 2e1f37b0 2019-08-08 stsp M numbers (change 3 of 3)
458 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] y
461 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
463 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
464 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
465 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
469 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
470 2e1f37b0 2019-08-08 stsp echo "MM numbers" > $testroot/stdout.expected
471 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
473 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
474 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
475 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
479 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
481 2e1f37b0 2019-08-08 stsp echo "diff $commit_id $testroot/wt (staged changes)" \
482 2e1f37b0 2019-08-08 stsp > $testroot/stdout.expected
483 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
484 2e1f37b0 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
485 2e1f37b0 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
486 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
487 2e1f37b0 2019-08-08 stsp echo -n 'blob + ' >> $testroot/stdout.expected
488 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 \
489 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
490 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
491 2e1f37b0 2019-08-08 stsp --- numbers
492 2e1f37b0 2019-08-08 stsp +++ numbers
493 2e1f37b0 2019-08-08 stsp @@ -1,10 +1,10 @@
507 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
509 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
510 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
511 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
515 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
516 2e1f37b0 2019-08-08 stsp echo "diff $commit_id $testroot/wt" > $testroot/stdout.expected
517 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
518 4ce46740 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 | \
519 4ce46740 2019-08-08 stsp tr -d '\n' >> $testroot/stdout.expected
520 4ce46740 2019-08-08 stsp echo " (staged)" >> $testroot/stdout.expected
521 2e1f37b0 2019-08-08 stsp echo "file + numbers" >> $testroot/stdout.expected
522 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
523 2e1f37b0 2019-08-08 stsp --- numbers
524 2e1f37b0 2019-08-08 stsp +++ numbers
525 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@ b
532 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
534 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
535 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
536 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
540 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage >/dev/null)
542 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
543 2e1f37b0 2019-08-08 stsp echo "got stage command failed unexpectedly" >&2
544 2e1f37b0 2019-08-08 stsp test_done "$testroot" "1"
548 ad493afc 2019-08-03 stsp (cd $testroot/wt && got status > $testroot/stdout)
549 2e1f37b0 2019-08-08 stsp echo " M numbers" > $testroot/stdout.expected
550 ad493afc 2019-08-03 stsp cmp -s $testroot/stdout.expected $testroot/stdout
552 ad493afc 2019-08-03 stsp if [ "$ret" != "0" ]; then
553 ad493afc 2019-08-03 stsp diff -u $testroot/stdout.expected $testroot/stdout
554 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
558 2e1f37b0 2019-08-08 stsp # unstage all hunks
559 2e1f37b0 2019-08-08 stsp printf "y\ny\ny\n" > $testroot/patchscript
560 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
561 2e1f37b0 2019-08-08 stsp numbers > $testroot/stdout)
563 2e1f37b0 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
564 2e1f37b0 2019-08-08 stsp -----------------------------------------------
565 2e1f37b0 2019-08-08 stsp @@ -1,5 +1,5 @@
572 2e1f37b0 2019-08-08 stsp -----------------------------------------------
573 2e1f37b0 2019-08-08 stsp M numbers (change 1 of 3)
574 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] y
575 2e1f37b0 2019-08-08 stsp -----------------------------------------------
576 2e1f37b0 2019-08-08 stsp @@ -4,7 +4,7 @@
585 2e1f37b0 2019-08-08 stsp -----------------------------------------------
586 2e1f37b0 2019-08-08 stsp M numbers (change 2 of 3)
587 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] y
588 2e1f37b0 2019-08-08 stsp -----------------------------------------------
589 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
595 2e1f37b0 2019-08-08 stsp -----------------------------------------------
596 2e1f37b0 2019-08-08 stsp M numbers (change 3 of 3)
597 2e1f37b0 2019-08-08 stsp unstage this change? [y/n/q] y
600 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
602 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
603 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
604 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
608 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
609 2e1f37b0 2019-08-08 stsp echo "M numbers" > $testroot/stdout.expected
610 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
612 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
613 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
614 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
618 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
619 2e1f37b0 2019-08-08 stsp echo -n > $testroot/stdout.expected
620 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
622 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
623 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
624 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
628 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
630 2e1f37b0 2019-08-08 stsp echo "diff $commit_id $testroot/wt" > $testroot/stdout.expected
631 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
632 2e1f37b0 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
633 2e1f37b0 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
634 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
635 2e1f37b0 2019-08-08 stsp echo 'file + numbers' >> $testroot/stdout.expected
636 2e1f37b0 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
637 2e1f37b0 2019-08-08 stsp --- numbers
638 2e1f37b0 2019-08-08 stsp +++ numbers
639 2e1f37b0 2019-08-08 stsp @@ -1,10 +1,10 @@
652 2e1f37b0 2019-08-08 stsp @@ -13,4 +13,4 @@
659 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
661 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
662 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
664 ad493afc 2019-08-03 stsp test_done "$testroot" "$ret"
668 f6cae3ed 2020-09-13 naddy test_unstage_patch_added() {
669 2e1f37b0 2019-08-08 stsp local testroot=`test_init unstage_patch_added`
670 2e1f37b0 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
672 2e1f37b0 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
674 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
675 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
679 2e1f37b0 2019-08-08 stsp echo "new" > $testroot/wt/epsilon/new
680 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got add epsilon/new > /dev/null)
682 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
684 2e1f37b0 2019-08-08 stsp printf "y\n" > $testroot/patchscript
685 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
686 2e1f37b0 2019-08-08 stsp epsilon/new > $testroot/stdout)
688 2e1f37b0 2019-08-08 stsp echo "A epsilon/new" > $testroot/stdout.expected
689 2e1f37b0 2019-08-08 stsp echo "unstage this addition? [y/n] y" >> $testroot/stdout.expected
690 2e1f37b0 2019-08-08 stsp echo "G epsilon/new" >> $testroot/stdout.expected
691 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
693 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
694 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
695 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
699 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
700 2e1f37b0 2019-08-08 stsp echo "A epsilon/new" > $testroot/stdout.expected
701 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
703 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
704 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
705 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
709 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
710 2e1f37b0 2019-08-08 stsp echo -n > $testroot/stdout.expected
711 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
713 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
714 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
715 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
719 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
721 2e1f37b0 2019-08-08 stsp echo "diff $commit_id $testroot/wt" > $testroot/stdout.expected
722 2e1f37b0 2019-08-08 stsp echo 'blob - /dev/null' >> $testroot/stdout.expected
723 2e1f37b0 2019-08-08 stsp echo 'file + epsilon/new' >> $testroot/stdout.expected
724 2e1f37b0 2019-08-08 stsp echo "--- epsilon/new" >> $testroot/stdout.expected
725 2e1f37b0 2019-08-08 stsp echo "+++ epsilon/new" >> $testroot/stdout.expected
726 2e1f37b0 2019-08-08 stsp echo "@@ -0,0 +1 @@" >> $testroot/stdout.expected
727 2e1f37b0 2019-08-08 stsp echo "+new" >> $testroot/stdout.expected
728 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
730 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
731 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
733 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
736 f6cae3ed 2020-09-13 naddy test_unstage_patch_removed() {
737 2e1f37b0 2019-08-08 stsp local testroot=`test_init unstage_patch_removed`
738 2e1f37b0 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
740 2e1f37b0 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
742 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
743 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
747 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got rm beta > /dev/null)
748 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
750 2e1f37b0 2019-08-08 stsp printf "y\n" > $testroot/patchscript
751 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
752 2e1f37b0 2019-08-08 stsp beta > $testroot/stdout)
754 2e1f37b0 2019-08-08 stsp echo "D beta" > $testroot/stdout.expected
755 2e1f37b0 2019-08-08 stsp echo "unstage this deletion? [y/n] y" >> $testroot/stdout.expected
756 2e1f37b0 2019-08-08 stsp echo "D beta" >> $testroot/stdout.expected
757 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
759 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
760 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
761 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
765 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
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
769 2e1f37b0 2019-08-08 stsp if [ "$ret" != "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"
775 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
776 2e1f37b0 2019-08-08 stsp echo -n > $testroot/stdout.expected
777 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
779 2e1f37b0 2019-08-08 stsp if [ "$ret" != "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"
785 2e1f37b0 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
787 2e1f37b0 2019-08-08 stsp echo "diff $commit_id $testroot/wt" \
788 2e1f37b0 2019-08-08 stsp > $testroot/stdout.expected
789 2e1f37b0 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
790 2e1f37b0 2019-08-08 stsp got tree -r $testroot/repo -i | grep 'beta$' | cut -d' ' -f 1 \
791 2e1f37b0 2019-08-08 stsp >> $testroot/stdout.expected
792 2e1f37b0 2019-08-08 stsp echo 'file + /dev/null' >> $testroot/stdout.expected
793 2e1f37b0 2019-08-08 stsp echo "--- beta" >> $testroot/stdout.expected
794 2e1f37b0 2019-08-08 stsp echo "+++ beta" >> $testroot/stdout.expected
795 2e1f37b0 2019-08-08 stsp echo "@@ -1 +0,0 @@" >> $testroot/stdout.expected
796 2e1f37b0 2019-08-08 stsp echo "-beta" >> $testroot/stdout.expected
797 2e1f37b0 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
799 2e1f37b0 2019-08-08 stsp if [ "$ret" != "0" ]; then
800 2e1f37b0 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
802 2e1f37b0 2019-08-08 stsp test_done "$testroot" "$ret"
805 f6cae3ed 2020-09-13 naddy test_unstage_patch_quit() {
806 19e4b907 2019-08-08 stsp local testroot=`test_init unstage_patch_quit`
808 19e4b907 2019-08-08 stsp jot 16 > $testroot/repo/numbers
809 19e4b907 2019-08-08 stsp echo zzz > $testroot/repo/zzz
810 19e4b907 2019-08-08 stsp (cd $testroot/repo && git add numbers zzz)
811 19e4b907 2019-08-08 stsp git_commit $testroot/repo -m "added files"
812 19e4b907 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
814 19e4b907 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
816 19e4b907 2019-08-08 stsp if [ "$ret" != "0" ]; then
817 19e4b907 2019-08-08 stsp test_done "$testroot" "$ret"
821 19e4b907 2019-08-08 stsp sed -i -e 's/^2$/a/' $testroot/wt/numbers
822 19e4b907 2019-08-08 stsp sed -i -e 's/^7$/b/' $testroot/wt/numbers
823 19e4b907 2019-08-08 stsp sed -i -e 's/^16$/c/' $testroot/wt/numbers
824 19e4b907 2019-08-08 stsp (cd $testroot/wt && got rm zzz > /dev/null)
825 19e4b907 2019-08-08 stsp (cd $testroot/wt && got stage > /dev/null)
827 19e4b907 2019-08-08 stsp # unstage first hunk and quit; and don't pass a path argument to
828 19e4b907 2019-08-08 stsp # ensure that we don't skip asking about the 'zzz' file after 'quit'
829 19e4b907 2019-08-08 stsp printf "y\nq\nn\n" > $testroot/patchscript
830 19e4b907 2019-08-08 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
831 19e4b907 2019-08-08 stsp > $testroot/stdout)
833 19e4b907 2019-08-08 stsp if [ "$ret" != "0" ]; then
834 57ba6a8b 2019-08-08 stsp echo "got unstage command failed unexpectedly" >&2
835 19e4b907 2019-08-08 stsp test_done "$testroot" "1"
838 19e4b907 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
839 19e4b907 2019-08-08 stsp -----------------------------------------------
840 19e4b907 2019-08-08 stsp @@ -1,5 +1,5 @@
847 19e4b907 2019-08-08 stsp -----------------------------------------------
848 19e4b907 2019-08-08 stsp M numbers (change 1 of 3)
849 19e4b907 2019-08-08 stsp unstage this change? [y/n/q] y
850 19e4b907 2019-08-08 stsp -----------------------------------------------
851 19e4b907 2019-08-08 stsp @@ -4,7 +4,7 @@
860 19e4b907 2019-08-08 stsp -----------------------------------------------
861 19e4b907 2019-08-08 stsp M numbers (change 2 of 3)
862 19e4b907 2019-08-08 stsp unstage this change? [y/n/q] q
865 19e4b907 2019-08-08 stsp unstage this deletion? [y/n] n
867 19e4b907 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
869 19e4b907 2019-08-08 stsp if [ "$ret" != "0" ]; then
870 19e4b907 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
871 19e4b907 2019-08-08 stsp test_done "$testroot" "$ret"
875 19e4b907 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
876 19e4b907 2019-08-08 stsp echo "MM numbers" > $testroot/stdout.expected
877 19e4b907 2019-08-08 stsp echo " D zzz" >> $testroot/stdout.expected
878 19e4b907 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
880 19e4b907 2019-08-08 stsp if [ "$ret" != "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"
886 19e4b907 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
888 19e4b907 2019-08-08 stsp echo "diff $commit_id $testroot/wt" > $testroot/stdout.expected
889 19e4b907 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
890 4ce46740 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 | \
891 4ce46740 2019-08-08 stsp tr -d '\n' >> $testroot/stdout.expected
892 4ce46740 2019-08-08 stsp echo " (staged)" >> $testroot/stdout.expected
893 19e4b907 2019-08-08 stsp echo "file + numbers" >> $testroot/stdout.expected
894 19e4b907 2019-08-08 stsp echo "--- numbers" >> $testroot/stdout.expected
895 19e4b907 2019-08-08 stsp echo "+++ numbers" >> $testroot/stdout.expected
896 19e4b907 2019-08-08 stsp echo "@@ -1,5 +1,5 @@" >> $testroot/stdout.expected
897 19e4b907 2019-08-08 stsp echo " 1" >> $testroot/stdout.expected
898 19e4b907 2019-08-08 stsp echo "-2" >> $testroot/stdout.expected
899 19e4b907 2019-08-08 stsp echo "+a" >> $testroot/stdout.expected
900 19e4b907 2019-08-08 stsp echo " 3" >> $testroot/stdout.expected
901 19e4b907 2019-08-08 stsp echo " 4" >> $testroot/stdout.expected
902 19e4b907 2019-08-08 stsp echo " 5" >> $testroot/stdout.expected
903 19e4b907 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
905 19e4b907 2019-08-08 stsp if [ "$ret" != "0" ]; then
906 19e4b907 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
907 19e4b907 2019-08-08 stsp test_done "$testroot" "$ret"
911 19e4b907 2019-08-08 stsp (cd $testroot/wt && got diff -s > $testroot/stdout)
912 19e4b907 2019-08-08 stsp echo "diff $commit_id $testroot/wt (staged changes)" \
913 19e4b907 2019-08-08 stsp > $testroot/stdout.expected
914 19e4b907 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
915 19e4b907 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
916 19e4b907 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
917 19e4b907 2019-08-08 stsp >> $testroot/stdout.expected
918 19e4b907 2019-08-08 stsp echo -n 'blob + ' >> $testroot/stdout.expected
919 19e4b907 2019-08-08 stsp (cd $testroot/wt && got stage -l numbers) | cut -d' ' -f 1 \
920 19e4b907 2019-08-08 stsp >> $testroot/stdout.expected
921 19e4b907 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
922 19e4b907 2019-08-08 stsp --- numbers
923 19e4b907 2019-08-08 stsp +++ numbers
924 19e4b907 2019-08-08 stsp @@ -4,7 +4,7 @@
933 19e4b907 2019-08-08 stsp @@ -13,4 +13,4 @@
940 19e4b907 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
941 19e4b907 2019-08-08 stsp got tree -r $testroot/repo -i | grep 'zzz$' | cut -d' ' -f 1 \
942 19e4b907 2019-08-08 stsp >> $testroot/stdout.expected
943 19e4b907 2019-08-08 stsp echo 'blob + /dev/null' >> $testroot/stdout.expected
944 19e4b907 2019-08-08 stsp echo "--- zzz" >> $testroot/stdout.expected
945 19e4b907 2019-08-08 stsp echo "+++ /dev/null" >> $testroot/stdout.expected
946 19e4b907 2019-08-08 stsp echo "@@ -1 +0,0 @@" >> $testroot/stdout.expected
947 19e4b907 2019-08-08 stsp echo "-zzz" >> $testroot/stdout.expected
948 19e4b907 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
950 19e4b907 2019-08-08 stsp if [ "$ret" != "0" ]; then
951 19e4b907 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
953 19e4b907 2019-08-08 stsp test_done "$testroot" "$ret"
956 f6cae3ed 2020-09-13 naddy test_unstage_symlink() {
957 ea7786be 2020-07-23 stsp local testroot=`test_init unstage_symlink`
959 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s alpha alpha.link)
960 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s epsilon epsilon.link)
961 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s /etc/passwd passwd.link)
962 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s ../beta epsilon/beta.link)
963 ea7786be 2020-07-23 stsp (cd $testroot/repo && ln -s nonexistent nonexistent.link)
964 ea7786be 2020-07-23 stsp (cd $testroot/repo && git add .)
965 ea7786be 2020-07-23 stsp git_commit $testroot/repo -m "add symlinks"
966 ea7786be 2020-07-23 stsp local head_commit=`git_show_head $testroot/repo`
968 ea7786be 2020-07-23 stsp got checkout $testroot/repo $testroot/wt > /dev/null
970 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
971 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
975 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sf beta alpha.link)
976 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sfh gamma epsilon.link)
977 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sf ../gamma/delta epsilon/beta.link)
978 ea7786be 2020-07-23 stsp echo 'this is regular file foo' > $testroot/wt/dotgotfoo.link
979 ea7786be 2020-07-23 stsp (cd $testroot/wt && got add dotgotfoo.link > /dev/null)
980 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sf .got/bar dotgotbar.link)
981 ea7786be 2020-07-23 stsp (cd $testroot/wt && got add dotgotbar.link > /dev/null)
982 ea7786be 2020-07-23 stsp (cd $testroot/wt && got rm nonexistent.link > /dev/null)
983 ea7786be 2020-07-23 stsp (cd $testroot/wt && ln -sf gamma/delta zeta.link)
984 ea7786be 2020-07-23 stsp (cd $testroot/wt && got add zeta.link > /dev/null)
986 35213c7c 2020-07-23 stsp (cd $testroot/wt && got stage -S > /dev/null)
988 ea7786be 2020-07-23 stsp (cd $testroot/wt && got status > $testroot/stdout)
989 ea7786be 2020-07-23 stsp cat > $testroot/stdout.expected <<EOF
990 ea7786be 2020-07-23 stsp M alpha.link
991 ea7786be 2020-07-23 stsp A dotgotbar.link
992 ea7786be 2020-07-23 stsp A dotgotfoo.link
993 ea7786be 2020-07-23 stsp M epsilon/beta.link
994 ea7786be 2020-07-23 stsp M epsilon.link
995 ea7786be 2020-07-23 stsp D nonexistent.link
996 ea7786be 2020-07-23 stsp A zeta.link
998 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1000 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
1001 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1002 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1006 ea7786be 2020-07-23 stsp (cd $testroot/wt && got unstage > $testroot/stdout)
1008 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
1009 ea7786be 2020-07-23 stsp echo "got unstage command failed unexpectedly" >&2
1010 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1014 ea7786be 2020-07-23 stsp cat > $testroot/stdout.expected <<EOF
1015 ea7786be 2020-07-23 stsp G alpha.link
1016 ea7786be 2020-07-23 stsp G dotgotbar.link
1017 ea7786be 2020-07-23 stsp G dotgotfoo.link
1018 ea7786be 2020-07-23 stsp G epsilon/beta.link
1019 ea7786be 2020-07-23 stsp G epsilon.link
1020 ea7786be 2020-07-23 stsp D nonexistent.link
1021 ea7786be 2020-07-23 stsp G zeta.link
1024 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1026 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
1027 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1028 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1032 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/alpha.link ]; then
1033 ea7786be 2020-07-23 stsp echo "alpha.link is not a symlink"
1034 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1038 ea7786be 2020-07-23 stsp readlink $testroot/wt/alpha.link > $testroot/stdout
1039 ea7786be 2020-07-23 stsp echo "beta" > $testroot/stdout.expected
1040 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1042 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
1043 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1044 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1048 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/epsilon.link ]; then
1049 ea7786be 2020-07-23 stsp echo "epsilon.link is not a symlink"
1050 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1054 ea7786be 2020-07-23 stsp readlink $testroot/wt/epsilon.link > $testroot/stdout
1055 ea7786be 2020-07-23 stsp echo "gamma" > $testroot/stdout.expected
1056 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1058 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
1059 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1060 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1064 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/epsilon/beta.link ]; then
1065 ea7786be 2020-07-23 stsp echo "epsilon/beta.link is not a symlink"
1066 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1070 ea7786be 2020-07-23 stsp readlink $testroot/wt/epsilon/beta.link > $testroot/stdout
1071 ea7786be 2020-07-23 stsp echo "../gamma/delta" > $testroot/stdout.expected
1072 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1074 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
1075 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1076 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1080 ea7786be 2020-07-23 stsp if [ ! -f $testroot/wt/dotgotfoo.link ]; then
1081 ea7786be 2020-07-23 stsp echo "dotgotfoo.link is a symlink"
1082 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1086 ea7786be 2020-07-23 stsp echo "this is regular file foo" > $testroot/content.expected
1087 ea7786be 2020-07-23 stsp cp $testroot/wt/dotgotfoo.link $testroot/content
1088 ea7786be 2020-07-23 stsp cmp -s $testroot/content.expected $testroot/content
1090 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
1091 ea7786be 2020-07-23 stsp diff -u $testroot/content.expected $testroot/content
1092 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1096 ea7786be 2020-07-23 stsp # bad symlinks are allowed as-is for commit and stage/unstage
1097 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/dotgotbar.link ]; then
1098 ea7786be 2020-07-23 stsp echo "dotgotbar.link is not a symlink"
1099 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1103 ea7786be 2020-07-23 stsp readlink $testroot/wt/dotgotbar.link > $testroot/stdout
1104 ea7786be 2020-07-23 stsp echo ".got/bar" > $testroot/stdout.expected
1105 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1107 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
1108 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1109 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1113 ea7786be 2020-07-23 stsp if [ -e $testroot/wt/nonexistent.link ]; then
1114 ea7786be 2020-07-23 stsp echo "nonexistent.link exists on disk"
1115 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1119 ea7786be 2020-07-23 stsp if [ ! -h $testroot/wt/zeta.link ]; then
1120 ea7786be 2020-07-23 stsp echo "zeta.link is not a symlink"
1121 ea7786be 2020-07-23 stsp test_done "$testroot" "1"
1125 ea7786be 2020-07-23 stsp readlink $testroot/wt/zeta.link > $testroot/stdout
1126 ea7786be 2020-07-23 stsp echo "gamma/delta" > $testroot/stdout.expected
1127 ea7786be 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1129 ea7786be 2020-07-23 stsp if [ "$ret" != "0" ]; then
1130 ea7786be 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1131 ea7786be 2020-07-23 stsp test_done "$testroot" "$ret"
1135 ea7786be 2020-07-23 stsp test_done "$testroot" "0"
1138 f6cae3ed 2020-09-13 naddy test_unstage_patch_symlink() {
1139 36bf999c 2020-07-23 stsp local testroot=`test_init unstage_patch_symlink`
1141 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s alpha alpha.link)
1142 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s epsilon epsilon.link)
1143 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s /etc/passwd passwd.link)
1144 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s ../beta epsilon/beta.link)
1145 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -s nonexistent nonexistent.link)
1146 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -sf epsilon/zeta zeta.link)
1147 36bf999c 2020-07-23 stsp (cd $testroot/repo && ln -sf epsilon/zeta zeta2.link)
1148 36bf999c 2020-07-23 stsp (cd $testroot/repo && git add .)
1149 36bf999c 2020-07-23 stsp git_commit $testroot/repo -m "add symlinks"
1150 36bf999c 2020-07-23 stsp local commit_id1=`git_show_head $testroot/repo`
1152 36bf999c 2020-07-23 stsp got checkout $testroot/repo $testroot/wt > /dev/null
1154 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1155 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1159 36bf999c 2020-07-23 stsp # symlink to file A now points to file B
1160 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf gamma/delta alpha.link)
1161 36bf999c 2020-07-23 stsp # symlink to a directory A now points to file B
1162 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sfh beta epsilon.link)
1163 36bf999c 2020-07-23 stsp # "bad" symlink now contains a different target path
1164 36bf999c 2020-07-23 stsp echo "foo" > $testroot/wt/passwd.link
1165 36bf999c 2020-07-23 stsp # relative symlink to directory A now points to relative directory B
1166 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sfh ../gamma epsilon/beta.link)
1167 36bf999c 2020-07-23 stsp # an unversioned symlink
1168 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf .got/foo dotgotfoo.link)
1169 36bf999c 2020-07-23 stsp # symlink to file A now points to non-existent file B
1170 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf nonexistent2 nonexistent.link)
1171 36bf999c 2020-07-23 stsp # removed symlink
1172 36bf999c 2020-07-23 stsp (cd $testroot/wt && got rm zeta.link > /dev/null)
1173 36bf999c 2020-07-23 stsp (cd $testroot/wt && got rm zeta2.link > /dev/null)
1174 36bf999c 2020-07-23 stsp # added symlink
1175 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf beta new.link)
1176 36bf999c 2020-07-23 stsp (cd $testroot/wt && got add new.link > /dev/null)
1177 36bf999c 2020-07-23 stsp (cd $testroot/wt && ln -sf beta zeta3.link)
1178 36bf999c 2020-07-23 stsp (cd $testroot/wt && got add zeta3.link > /dev/null)
1180 36bf999c 2020-07-23 stsp (cd $testroot/wt && got stage -S > /dev/null)
1182 36bf999c 2020-07-23 stsp (cd $testroot/wt && got status > $testroot/stdout)
1183 36bf999c 2020-07-23 stsp cat > $testroot/stdout.expected <<EOF
1184 36bf999c 2020-07-23 stsp M alpha.link
1185 36bf999c 2020-07-23 stsp ? dotgotfoo.link
1186 36bf999c 2020-07-23 stsp M epsilon/beta.link
1187 36bf999c 2020-07-23 stsp M epsilon.link
1188 36bf999c 2020-07-23 stsp A new.link
1189 36bf999c 2020-07-23 stsp M nonexistent.link
1190 36bf999c 2020-07-23 stsp M passwd.link
1191 36bf999c 2020-07-23 stsp D zeta.link
1192 36bf999c 2020-07-23 stsp D zeta2.link
1193 36bf999c 2020-07-23 stsp A zeta3.link
1195 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1197 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1198 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1199 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1203 36bf999c 2020-07-23 stsp printf "y\nn\ny\nn\ny\ny\nn\ny\ny\n" > $testroot/patchscript
1204 36bf999c 2020-07-23 stsp (cd $testroot/wt && got unstage -F $testroot/patchscript -p \
1205 36bf999c 2020-07-23 stsp > $testroot/stdout)
1207 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1208 36bf999c 2020-07-23 stsp echo "got unstage command failed unexpectedly" >&2
1209 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1213 36bf999c 2020-07-23 stsp cat > $testroot/stdout.expected <<EOF
1214 36bf999c 2020-07-23 stsp -----------------------------------------------
1215 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1217 36bf999c 2020-07-23 stsp \ No newline at end of file
1218 36bf999c 2020-07-23 stsp +gamma/delta
1219 36bf999c 2020-07-23 stsp \ No newline at end of file
1220 36bf999c 2020-07-23 stsp -----------------------------------------------
1221 36bf999c 2020-07-23 stsp M alpha.link (change 1 of 1)
1222 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] y
1223 36bf999c 2020-07-23 stsp G alpha.link
1224 36bf999c 2020-07-23 stsp -----------------------------------------------
1225 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1227 36bf999c 2020-07-23 stsp \ No newline at end of file
1229 36bf999c 2020-07-23 stsp \ No newline at end of file
1230 36bf999c 2020-07-23 stsp -----------------------------------------------
1231 36bf999c 2020-07-23 stsp M epsilon/beta.link (change 1 of 1)
1232 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] n
1233 36bf999c 2020-07-23 stsp -----------------------------------------------
1234 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1236 36bf999c 2020-07-23 stsp \ No newline at end of file
1238 36bf999c 2020-07-23 stsp \ No newline at end of file
1239 36bf999c 2020-07-23 stsp -----------------------------------------------
1240 36bf999c 2020-07-23 stsp M epsilon.link (change 1 of 1)
1241 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] y
1242 36bf999c 2020-07-23 stsp G epsilon.link
1243 36bf999c 2020-07-23 stsp A new.link
1244 36bf999c 2020-07-23 stsp unstage this addition? [y/n] n
1245 36bf999c 2020-07-23 stsp -----------------------------------------------
1246 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1247 36bf999c 2020-07-23 stsp -nonexistent
1248 36bf999c 2020-07-23 stsp \ No newline at end of file
1249 36bf999c 2020-07-23 stsp +nonexistent2
1250 36bf999c 2020-07-23 stsp \ No newline at end of file
1251 36bf999c 2020-07-23 stsp -----------------------------------------------
1252 36bf999c 2020-07-23 stsp M nonexistent.link (change 1 of 1)
1253 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] y
1254 36bf999c 2020-07-23 stsp G nonexistent.link
1255 36bf999c 2020-07-23 stsp -----------------------------------------------
1256 36bf999c 2020-07-23 stsp @@ -1 +1 @@
1257 36bf999c 2020-07-23 stsp -/etc/passwd
1258 36bf999c 2020-07-23 stsp \ No newline at end of file
1260 36bf999c 2020-07-23 stsp -----------------------------------------------
1261 36bf999c 2020-07-23 stsp M passwd.link (change 1 of 1)
1262 36bf999c 2020-07-23 stsp unstage this change? [y/n/q] y
1263 36bf999c 2020-07-23 stsp G passwd.link
1264 36bf999c 2020-07-23 stsp D zeta.link
1265 36bf999c 2020-07-23 stsp unstage this deletion? [y/n] n
1266 36bf999c 2020-07-23 stsp D zeta2.link
1267 36bf999c 2020-07-23 stsp unstage this deletion? [y/n] y
1268 36bf999c 2020-07-23 stsp D zeta2.link
1269 36bf999c 2020-07-23 stsp A zeta3.link
1270 36bf999c 2020-07-23 stsp unstage this addition? [y/n] y
1271 36bf999c 2020-07-23 stsp G zeta3.link
1273 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1275 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1276 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1277 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1281 36bf999c 2020-07-23 stsp if ! [ -h $testroot/wt/alpha.link ]; then
1282 36bf999c 2020-07-23 stsp echo "alpha.link is not a symlink"
1283 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1287 36bf999c 2020-07-23 stsp readlink $testroot/wt/alpha.link > $testroot/stdout
1288 36bf999c 2020-07-23 stsp echo "gamma/delta" > $testroot/stdout.expected
1289 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1291 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1292 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1293 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1297 36bf999c 2020-07-23 stsp if ! [ -h $testroot/wt/epsilon.link ]; then
1298 36bf999c 2020-07-23 stsp echo "epsilon.link is not a symlink"
1299 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1303 36bf999c 2020-07-23 stsp readlink $testroot/wt/epsilon.link > $testroot/stdout
1304 36bf999c 2020-07-23 stsp echo "beta" > $testroot/stdout.expected
1305 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1307 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1308 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1309 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1313 36bf999c 2020-07-23 stsp if [ -h $testroot/wt/passwd.link ]; then
1314 36bf999c 2020-07-23 stsp echo "passwd.link should not be a symlink" >&2
1315 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1319 36bf999c 2020-07-23 stsp echo "foo" > $testroot/content.expected
1320 36bf999c 2020-07-23 stsp cp $testroot/wt/passwd.link $testroot/content
1322 36bf999c 2020-07-23 stsp cmp -s $testroot/content.expected $testroot/content
1324 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1325 36bf999c 2020-07-23 stsp diff -u $testroot/content.expected $testroot/content
1326 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1330 36bf999c 2020-07-23 stsp readlink $testroot/wt/epsilon/beta.link > $testroot/stdout
1331 36bf999c 2020-07-23 stsp echo "../gamma" > $testroot/stdout.expected
1332 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1334 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1335 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1336 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1340 36bf999c 2020-07-23 stsp readlink $testroot/wt/nonexistent.link > $testroot/stdout
1341 36bf999c 2020-07-23 stsp echo "nonexistent2" > $testroot/stdout.expected
1342 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1344 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1345 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1346 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1350 36bf999c 2020-07-23 stsp if [ ! -h $testroot/wt/dotgotfoo.link ]; then
1351 36bf999c 2020-07-23 stsp echo "dotgotfoo.link is not a symlink " >&2
1352 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1355 36bf999c 2020-07-23 stsp readlink $testroot/wt/dotgotfoo.link > $testroot/stdout
1356 36bf999c 2020-07-23 stsp echo ".got/foo" > $testroot/stdout.expected
1357 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1359 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1360 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1361 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1366 36bf999c 2020-07-23 stsp if [ -e $testroot/wt/zeta.link ]; then
1367 36bf999c 2020-07-23 stsp echo -n "zeta.link should not exist on disk" >&2
1368 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1372 36bf999c 2020-07-23 stsp if [ -e $testroot/wt/zeta2.link ]; then
1373 36bf999c 2020-07-23 stsp echo -n "zeta2.link exists on disk" >&2
1374 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1378 36bf999c 2020-07-23 stsp if [ ! -h $testroot/wt/zeta3.link ]; then
1379 36bf999c 2020-07-23 stsp echo -n "zeta3.link is not a symlink" >&2
1380 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1384 36bf999c 2020-07-23 stsp readlink $testroot/wt/zeta3.link > $testroot/stdout
1385 36bf999c 2020-07-23 stsp echo "beta" > $testroot/stdout.expected
1386 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1388 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1389 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1390 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1394 36bf999c 2020-07-23 stsp if [ ! -h $testroot/wt/new.link ]; then
1395 36bf999c 2020-07-23 stsp echo -n "new.link is not a symlink" >&2
1396 36bf999c 2020-07-23 stsp test_done "$testroot" "1"
1400 36bf999c 2020-07-23 stsp (cd $testroot/wt && got status > $testroot/stdout)
1401 36bf999c 2020-07-23 stsp echo "M alpha.link" > $testroot/stdout.expected
1402 36bf999c 2020-07-23 stsp echo "? dotgotfoo.link" >> $testroot/stdout.expected
1403 36bf999c 2020-07-23 stsp echo " M epsilon/beta.link" >> $testroot/stdout.expected
1404 36bf999c 2020-07-23 stsp echo "M epsilon.link" >> $testroot/stdout.expected
1405 36bf999c 2020-07-23 stsp echo " A new.link" >> $testroot/stdout.expected
1406 36bf999c 2020-07-23 stsp echo "M nonexistent.link" >> $testroot/stdout.expected
1407 36bf999c 2020-07-23 stsp echo "M passwd.link" >> $testroot/stdout.expected
1408 36bf999c 2020-07-23 stsp echo " D zeta.link" >> $testroot/stdout.expected
1409 36bf999c 2020-07-23 stsp echo "D zeta2.link" >> $testroot/stdout.expected
1410 36bf999c 2020-07-23 stsp echo "A zeta3.link" >> $testroot/stdout.expected
1411 36bf999c 2020-07-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1413 36bf999c 2020-07-23 stsp if [ "$ret" != "0" ]; then
1414 36bf999c 2020-07-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
1417 36bf999c 2020-07-23 stsp test_done "$testroot" "$ret"
1420 7fb414ae 2020-08-08 stsp test_parseargs "$@"
1421 ad493afc 2019-08-03 stsp run_test test_unstage_basic
1422 8b13ce36 2019-08-08 stsp run_test test_unstage_unversioned
1423 8564cb21 2019-08-08 stsp run_test test_unstage_nonexistent
1424 2e1f37b0 2019-08-08 stsp run_test test_unstage_patch
1425 2e1f37b0 2019-08-08 stsp run_test test_unstage_patch_added
1426 2e1f37b0 2019-08-08 stsp run_test test_unstage_patch_removed
1427 19e4b907 2019-08-08 stsp run_test test_unstage_patch_quit
1428 ea7786be 2020-07-23 stsp run_test test_unstage_symlink
1429 36bf999c 2020-07-23 stsp run_test test_unstage_patch_symlink