Update changelog for v1.2
[stgit.git] / t / t0002-status.sh
blob433b2d6f9b3e42c372b62939307181a61e860637
1 #!/bin/sh
3 # Copyright (c) 2007 David Kågedal
6 test_description='Basic stg status
8 Test that "stg status" works.'
10 . ./test-lib.sh
11 stg init
13 # Ignore our own output files.
14 cat >> .git/info/exclude <<EOF
15 /expected.txt
16 /output.txt
17 EOF
19 cat > expected.txt <<EOF
20 EOF
21 test_expect_success 'Run status on empty' '
22 stg status > output.txt &&
23 test_cmp expected.txt output.txt
26 cat > expected.txt <<EOF
27 ?? foo
28 EOF
29 test_expect_success 'Status with an untracked file' '
30 touch foo &&
31 stg status > output.txt &&
32 test_cmp expected.txt output.txt
34 rm -f foo
36 cat > expected.txt <<EOF
37 EOF
38 test_expect_success 'Status with an empty directory' '
39 mkdir foo &&
40 stg status > output.txt &&
41 test_cmp expected.txt output.txt
44 cat > expected.txt <<EOF
45 ?? foo/
46 EOF
47 test_expect_success 'Status with an untracked file in a subdir' '
48 touch foo/bar &&
49 stg status > output.txt &&
50 test_cmp expected.txt output.txt
53 cat > expected.txt <<EOF
54 A foo/bar
55 EOF
56 test_expect_success 'Status with an added file' '
57 stg add foo &&
58 stg status > output.txt &&
59 test_cmp expected.txt output.txt
62 cat > expected.txt <<EOF
63 EOF
64 test_expect_success 'Status after refresh' '
65 stg new -m "first patch" &&
66 stg refresh &&
67 stg status > output.txt &&
68 test_cmp expected.txt output.txt
71 cat > expected.txt <<EOF
72 M foo/bar
73 EOF
74 test_expect_success 'Status after modification' '
75 echo "wee" >> foo/bar &&
76 stg status > output.txt &&
77 test_cmp expected.txt output.txt
80 cat > expected.txt <<EOF
81 EOF
82 test_expect_success 'Status after refresh' '
83 stg new -m "second patch" && stg refresh &&
84 stg status > output.txt &&
85 test_cmp expected.txt output.txt
88 test_expect_success 'Add another file' '
89 echo lajbans > fie &&
90 stg add fie &&
91 stg refresh
94 test_expect_success 'Make a conflicting patch' '
95 stg pop &&
96 stg new -m "third patch" &&
97 echo "woo" >> foo/bar &&
98 stg refresh
101 cat > expected.txt <<EOF
102 A fie
103 UU foo/bar
105 test_expect_success 'Status after conflicting push' '
106 conflict stg push &&
107 stg status > output.txt &&
108 test_cmp expected.txt output.txt
111 cat > expected.txt <<EOF
112 UU foo/bar
114 test_expect_success 'Status of file' '
115 stg status foo/bar > output.txt &&
116 test_cmp expected.txt output.txt
119 cat > expected.txt <<EOF
120 UU foo/bar
122 test_expect_success 'Status of dir' '
123 stg status foo > output.txt &&
124 test_cmp expected.txt output.txt
127 cat > expected.txt <<EOF
128 A fie
130 test_expect_success 'Status of other file' '
131 stg status fie > output.txt &&
132 test_cmp expected.txt output.txt
135 cat > expected.txt <<EOF
136 A fie
137 M foo/bar
139 test_expect_success 'Status after resolving the push' '
140 stg add --update &&
141 stg status > output.txt &&
142 test_cmp expected.txt output.txt
145 cat > expected.txt <<EOF
146 A fie
147 MD foo/bar
149 test_expect_success 'Status after deleting a file' '
150 rm foo/bar &&
151 stg status > output.txt &&
152 test_cmp expected.txt output.txt
155 cat > expected.txt <<EOF
156 AD foo/bar
158 test_expect_success 'Status of disappeared newborn' '
159 stg refresh --force &&
160 touch foo/bar &&
161 stg add foo/bar &&
162 rm foo/bar &&
163 stg status > output.txt &&
164 test_cmp expected.txt output.txt
167 cat > expected.txt <<EOF
168 R fie -> fay
170 test_expect_success 'Status after renaming a file' '
171 stg rm foo/bar &&
172 stg mv fie fay &&
173 stg status > output.txt &&
174 test_cmp expected.txt output.txt
177 test_done