##// END OF EJS Templates
revset: skip legacy lookup for revspec wrapped in 'revset(...)'...
Boris Feld -
r37778:29eb4caf default
parent child Browse files
Show More
@@ -352,6 +352,9 b' def _analyze(x):'
352 352 elif op == 'keyvalue':
353 353 return (op, x[1], _analyze(x[2]))
354 354 elif op == 'func':
355 f = getsymbol(x[1])
356 if f == 'revset':
357 return _analyze(x[2])
355 358 return (op, x[1], _analyze(x[2]))
356 359 raise ValueError('invalid operator %r' % op)
357 360
@@ -482,6 +485,8 b' def _parsewith(spec, lookup=None, symini'
482 485 ...
483 486 ParseError: ('invalid token', 4)
484 487 """
488 if lookup and spec.startswith('revset(') and spec.endswith(')'):
489 lookup = None
485 490 p = parser.parser(elements)
486 491 tree, pos = p.parse(tokenize(spec, lookup=lookup,
487 492 syminitletters=syminitletters))
@@ -62,6 +62,12 b' within a more advances revset'
62 62 $ hg log -r 'rev(0) and branch(default)'
63 63 0:a87874c6ec31 first []
64 64
65 with explicit revset resolution
66 (still resolved as the label)
67
68 $ hg log -r 'revset(rev(0))'
69 0:a87874c6ec31 first []
70
65 71 some of the above with quote to force its resolution as a label
66 72
67 73 $ hg log -r ':"rev(0)"'
@@ -91,8 +97,13 b' Test label with quote in them.'
91 97 $ hg log -r '("foo")'
92 98 abort: unknown revision 'foo'!
93 99 [255]
100 $ hg log -r 'revset("foo")'
101 abort: unknown revision 'foo'!
102 [255]
94 103 $ hg log -r '("\"foo\"")'
95 104 2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
105 $ hg log -r 'revset("\"foo\"")'
106 2:fb616635b18f Added tag rev(0) for changeset 43114e71eddd ["foo"]
96 107
97 108 Test label with dash in them.
98 109
@@ -116,6 +127,9 b' Test label with + in them.'
116 127 $ hg log -r '(foo+bar)'
117 128 abort: unknown revision 'foo'!
118 129 [255]
130 $ hg log -r 'revset(foo+bar)'
131 abort: unknown revision 'foo'!
132 [255]
119 133 $ hg log -r '"foo+bar"'
120 134 4:bbf52b87b370 Added tag foo-bar for changeset a50aae922707 [foo+bar]
121 135 $ hg log -r '("foo+bar")'
@@ -129,6 +143,8 b' Test tag with numeric version number.'
129 143 5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
130 144 $ hg log -r '(1.2)'
131 145 5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
146 $ hg log -r 'revset(1.2)'
147 5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
132 148 $ hg log -r '"1.2"'
133 149 5:ff42fde8edbb Added tag foo+bar for changeset bbf52b87b370 [1.2]
134 150 $ hg log -r '("1.2")'
@@ -157,6 +173,9 b' Test tag with parenthesis (but not a val'
157 173 $ hg log -r '(release_4.1(candidate1))'
158 174 hg: parse error: unknown identifier: release_4.1
159 175 [255]
176 $ hg log -r 'revset(release_4.1(candidate1))'
177 hg: parse error: unknown identifier: release_4.1
178 [255]
160 179 $ hg log -r '"release_4.1(candidate1)"'
161 180 6:db72e24fe069 Added tag 1.2 for changeset ff42fde8edbb [release_4.1(candidate1)]
162 181 $ hg log -r '("release_4.1(candidate1)")'
@@ -182,6 +201,9 b' Test tag with parenthesis and other func'
182 201 $ hg log -r '(release_4.1(arch=x86,arm))'
183 202 hg: parse error: unknown identifier: release_4.1
184 203 [255]
204 $ hg log -r 'revset(release_4.1(arch=x86,arm))'
205 hg: parse error: unknown identifier: release_4.1
206 [255]
185 207 $ hg log -r '"release_4.1(arch=x86,arm)"'
186 208 7:b29b25d7d687 Added tag release_4.1(candidate1) for changeset db72e24fe069 [release_4.1(arch=x86,arm)]
187 209 $ hg log -r '("release_4.1(arch=x86,arm)")'
@@ -208,6 +230,9 b' Test tag conflicting with revset functio'
208 230 $ hg log -r '(secret(team=foo,project=bar))'
209 231 hg: parse error: secret takes no arguments
210 232 [255]
233 $ hg log -r 'revset(secret(team=foo,project=bar))'
234 hg: parse error: secret takes no arguments
235 [255]
211 236 $ hg log -r '"secret(team=foo,project=bar)"'
212 237 8:6b2e2d4ea455 Added tag release_4.1(arch=x86,arm) for changeset b29b25d7d687 [secret(team=foo,project=bar)]
213 238 $ hg log -r '("secret(team=foo,project=bar)")'
@@ -237,6 +262,11 b' Test tag with space'
237 262 ((my little version)
238 263 ^ here)
239 264 [255]
265 $ hg log -r 'revset(my little version)'
266 hg: parse error at 10: unexpected token: symbol
267 (revset(my little version)
268 ^ here)
269 [255]
240 270 $ hg log -r '"my little version"'
241 271 9:269192bf8fc3 Added tag secret(team=foo,project=bar) for changeset 6b2e2d4ea455 [my little version]
242 272 $ hg log -r '("my little version")'
@@ -2801,3 +2801,43 b' test multiline revset with errors'
2801 2801 ( . + .^ +
2802 2802 ^ here)
2803 2803 [255]
2804 $ hg debugrevspec -v 'revset(first(rev(0)))' -p all
2805 * parsed:
2806 (func
2807 (symbol 'revset')
2808 (func
2809 (symbol 'first')
2810 (func
2811 (symbol 'rev')
2812 (symbol '0'))))
2813 * expanded:
2814 (func
2815 (symbol 'revset')
2816 (func
2817 (symbol 'first')
2818 (func
2819 (symbol 'rev')
2820 (symbol '0'))))
2821 * concatenated:
2822 (func
2823 (symbol 'revset')
2824 (func
2825 (symbol 'first')
2826 (func
2827 (symbol 'rev')
2828 (symbol '0'))))
2829 * analyzed:
2830 (func
2831 (symbol 'first')
2832 (func
2833 (symbol 'rev')
2834 (symbol '0')))
2835 * optimized:
2836 (func
2837 (symbol 'first')
2838 (func
2839 (symbol 'rev')
2840 (symbol '0')))
2841 * set:
2842 <baseset+ [0]>
2843 0
General Comments 0
You need to be logged in to leave comments. Login now