##// END OF EJS Templates
test-fileset: remove bashism, use test instead of '[[ ]]'...
Yuya Nishihara -
r25587:49fb24f7 default
parent child Browse files
Show More
@@ -1,306 +1,306 b''
1 1 $ fileset() {
2 2 > hg debugfileset "$@"
3 3 > }
4 4
5 5 $ hg init repo
6 6 $ cd repo
7 7 $ echo a > a1
8 8 $ echo a > a2
9 9 $ echo b > b1
10 10 $ echo b > b2
11 11 $ hg ci -Am addfiles
12 12 adding a1
13 13 adding a2
14 14 adding b1
15 15 adding b2
16 16
17 17 Test operators and basic patterns
18 18
19 19 $ fileset -v a1
20 20 ('symbol', 'a1')
21 21 a1
22 22 $ fileset -v 'a*'
23 23 ('symbol', 'a*')
24 24 a1
25 25 a2
26 26 $ fileset -v '"re:a\d"'
27 27 ('string', 're:a\\d')
28 28 a1
29 29 a2
30 30 $ fileset -v 'a1 or a2'
31 31 (or
32 32 ('symbol', 'a1')
33 33 ('symbol', 'a2'))
34 34 a1
35 35 a2
36 36 $ fileset 'a1 | a2'
37 37 a1
38 38 a2
39 39 $ fileset 'a* and "*1"'
40 40 a1
41 41 $ fileset 'a* & "*1"'
42 42 a1
43 43 $ fileset 'not (r"a*")'
44 44 b1
45 45 b2
46 46 $ fileset '! ("a*")'
47 47 b1
48 48 b2
49 49 $ fileset 'a* - a1'
50 50 a2
51 51 $ fileset 'a_b'
52 52
53 53 Test files status
54 54
55 55 $ rm a1
56 56 $ hg rm a2
57 57 $ echo b >> b2
58 58 $ hg cp b1 c1
59 59 $ echo c > c2
60 60 $ echo c > c3
61 61 $ cat > .hgignore <<EOF
62 62 > \.hgignore
63 63 > 2$
64 64 > EOF
65 65 $ fileset 'modified()'
66 66 b2
67 67 $ fileset 'added()'
68 68 c1
69 69 $ fileset 'removed()'
70 70 a2
71 71 $ fileset 'deleted()'
72 72 a1
73 73 $ fileset 'unknown()'
74 74 c3
75 75 $ fileset 'ignored()'
76 76 .hgignore
77 77 c2
78 78 $ fileset 'hgignore()'
79 79 a2
80 80 b2
81 81 $ fileset 'clean()'
82 82 b1
83 83 $ fileset 'copied()'
84 84 c1
85 85
86 86 Test files properties
87 87
88 88 >>> file('bin', 'wb').write('\0a')
89 89 $ fileset 'binary()'
90 90 $ fileset 'binary() and unknown()'
91 91 bin
92 92 $ echo '^bin$' >> .hgignore
93 93 $ fileset 'binary() and ignored()'
94 94 bin
95 95 $ hg add bin
96 96 $ fileset 'binary()'
97 97 bin
98 98
99 99 $ fileset 'grep("b{1}")'
100 100 b2
101 101 c1
102 102 b1
103 103 $ fileset 'grep("missingparens(")'
104 104 hg: parse error: invalid match pattern: unbalanced parenthesis
105 105 [255]
106 106
107 107 #if execbit
108 108 $ chmod +x b2
109 109 $ fileset 'exec()'
110 110 b2
111 111 #endif
112 112
113 113 #if symlink
114 114 $ ln -s b2 b2link
115 115 $ fileset 'symlink() and unknown()'
116 116 b2link
117 117 $ hg add b2link
118 118 #endif
119 119
120 120 #if no-windows
121 121 $ echo foo > con.xml
122 122 $ fileset 'not portable()'
123 123 con.xml
124 124 $ hg --config ui.portablefilenames=ignore add con.xml
125 125 #endif
126 126
127 127 >>> file('1k', 'wb').write(' '*1024)
128 128 >>> file('2k', 'wb').write(' '*2048)
129 129 $ hg add 1k 2k
130 130 $ fileset 'size("bar")'
131 131 hg: parse error: couldn't parse size: bar
132 132 [255]
133 133 $ fileset 'size(1k)'
134 134 1k
135 135 $ fileset '(1k or 2k) and size("< 2k")'
136 136 1k
137 137 $ fileset '(1k or 2k) and size("<=2k")'
138 138 1k
139 139 2k
140 140 $ fileset '(1k or 2k) and size("> 1k")'
141 141 2k
142 142 $ fileset '(1k or 2k) and size(">=1K")'
143 143 1k
144 144 2k
145 145 $ fileset '(1k or 2k) and size(".5KB - 1.5kB")'
146 146 1k
147 147
148 148 Test merge states
149 149
150 150 $ hg ci -m manychanges
151 151 $ hg up -C 0
152 152 * files updated, 0 files merged, * files removed, 0 files unresolved (glob)
153 153 $ echo c >> b2
154 154 $ hg ci -m diverging b2
155 155 created new head
156 156 $ fileset 'resolved()'
157 157 $ fileset 'unresolved()'
158 158 $ hg merge
159 159 merging b2
160 160 warning: conflicts during merge.
161 161 merging b2 incomplete! (edit conflicts, then use 'hg resolve --mark')
162 162 * files updated, 0 files merged, * files removed, 1 files unresolved (glob)
163 163 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
164 164 [1]
165 165 $ fileset 'resolved()'
166 166 $ fileset 'unresolved()'
167 167 b2
168 168 $ echo e > b2
169 169 $ hg resolve -m b2
170 170 (no more unresolved files)
171 171 $ fileset 'resolved()'
172 172 b2
173 173 $ fileset 'unresolved()'
174 174 $ hg ci -m merge
175 175
176 176 Test subrepo predicate
177 177
178 178 $ hg init sub
179 179 $ echo a > sub/suba
180 180 $ hg -R sub add sub/suba
181 181 $ hg -R sub ci -m sub
182 182 $ echo 'sub = sub' > .hgsub
183 183 $ hg init sub2
184 184 $ echo b > sub2/b
185 185 $ hg -R sub2 ci -Am sub2
186 186 adding b
187 187 $ echo 'sub2 = sub2' >> .hgsub
188 188 $ fileset 'subrepo()'
189 189 $ hg add .hgsub
190 190 $ fileset 'subrepo()'
191 191 sub
192 192 sub2
193 193 $ fileset 'subrepo("sub")'
194 194 sub
195 195 $ fileset 'subrepo("glob:*")'
196 196 sub
197 197 sub2
198 198 $ hg ci -m subrepo
199 199
200 200 Test that .hgsubstate is updated as appropriate during a conversion. The
201 201 saverev property is enough to alter the hashes of the subrepo.
202 202
203 203 $ hg init ../converted
204 204 $ hg --config extensions.convert= convert --config convert.hg.saverev=True \
205 205 > sub ../converted/sub
206 206 initializing destination ../converted/sub repository
207 207 scanning source...
208 208 sorting...
209 209 converting...
210 210 0 sub
211 211 $ hg clone -U sub2 ../converted/sub2
212 212 $ hg --config extensions.convert= convert --config convert.hg.saverev=True \
213 213 > . ../converted
214 214 scanning source...
215 215 sorting...
216 216 converting...
217 217 4 addfiles
218 218 3 manychanges
219 219 2 diverging
220 220 1 merge
221 221 0 subrepo
222 222 no ".hgsubstate" updates will be made for "sub2"
223 223 $ hg up -q -R ../converted -r tip
224 224 $ hg --cwd ../converted cat sub/suba sub2/b -r tip
225 225 a
226 226 b
227 227 $ oldnode=`hg log -r tip -T "{node}\n"`
228 228 $ newnode=`hg log -R ../converted -r tip -T "{node}\n"`
229 $ [[ "$oldnode" != "$newnode" ]] || echo "nothing changed"
229 $ [ "$oldnode" != "$newnode" ] || echo "nothing changed"
230 230
231 231 Test with a revision
232 232
233 233 $ hg log -G --template '{rev} {desc}\n'
234 234 @ 4 subrepo
235 235 |
236 236 o 3 merge
237 237 |\
238 238 | o 2 diverging
239 239 | |
240 240 o | 1 manychanges
241 241 |/
242 242 o 0 addfiles
243 243
244 244 $ echo unknown > unknown
245 245 $ fileset -r1 'modified()'
246 246 b2
247 247 $ fileset -r1 'added() and c1'
248 248 c1
249 249 $ fileset -r1 'removed()'
250 250 a2
251 251 $ fileset -r1 'deleted()'
252 252 $ fileset -r1 'unknown()'
253 253 $ fileset -r1 'ignored()'
254 254 $ fileset -r1 'hgignore()'
255 255 b2
256 256 bin
257 257 $ fileset -r1 'binary()'
258 258 bin
259 259 $ fileset -r1 'size(1k)'
260 260 1k
261 261 $ fileset -r3 'resolved()'
262 262 $ fileset -r3 'unresolved()'
263 263
264 264 #if execbit
265 265 $ fileset -r1 'exec()'
266 266 b2
267 267 #endif
268 268
269 269 #if symlink
270 270 $ fileset -r1 'symlink()'
271 271 b2link
272 272 #endif
273 273
274 274 #if no-windows
275 275 $ fileset -r1 'not portable()'
276 276 con.xml
277 277 $ hg forget 'con.xml'
278 278 #endif
279 279
280 280 $ fileset -r4 'subrepo("re:su.*")'
281 281 sub
282 282 sub2
283 283 $ fileset -r4 'subrepo("sub")'
284 284 sub
285 285 $ fileset -r4 'b2 or c1'
286 286 b2
287 287 c1
288 288
289 289 >>> open('dos', 'wb').write("dos\r\n")
290 290 >>> open('mixed', 'wb').write("dos\r\nunix\n")
291 291 >>> open('mac', 'wb').write("mac\r")
292 292 $ hg add dos mixed mac
293 293
294 294 $ fileset 'eol(dos)'
295 295 dos
296 296 mixed
297 297 $ fileset 'eol(unix)'
298 298 .hgsub
299 299 .hgsubstate
300 300 a1
301 301 b1
302 302 b2
303 303 c1
304 304 mixed
305 305 $ fileset 'eol(mac)'
306 306 mac
General Comments 0
You need to be logged in to leave comments. Login now