Mercurial > hg
annotate tests/test-schemes.t @ 25596:c1975809a6b5
templater: take any string literals as template, but not for rawstring (BC)
This patch series is intended to unify the interpretation of string literals.
It is breaking change that boldly assumes
a. string literal "..." never contains template-like fragment or it is
intended to be a template
b. we tend to use raw string literal r"..." for regexp pattern in which "{"
should have different meaning
Currently, we don't have a comprehensible rule how string literals are
evaluated in template functions. For example, fill() takes "initialindent"
and "hangindent" as templates, but not for "text", whereas "text" is a
template in pad() function.
date(date, fmt)
diff(includepattern, excludepattern)
fill(text, width, initialident: T, hangindent: T)
get(dict, key)
if(expr, then: T, else: T)
ifcontains(search, thing, then: T, else: T)
ifeq(expr1, expr2, then: T, else: T)
indent(text, indentchars, firstline)
join(list, sep)
label(label: T, expr: T)
pad(text: T, width, fillchar, right)
revset(query, formatargs...])
rstdoc(text, style)
shortest(node, minlength)
startswith(pattern, text)
strip(text, chars)
sub(pattern, replacement, expression: T)
word(number, text, separator)
expr % template: T
T: interpret "string" or r"rawstring" as template
This patch series adjusts the rule as follows:
a. string literal, '' or "", starts template processing (BC)
b. raw string literal, r'' or r"", disables both \-escape and template
processing (BC, done by subsequent patches)
c. fragment not surrounded by {} is non-templated string
"ccc{'aaa'}{r'bbb'}"
------------------ *: template
--- c: string
--- a: template
--- b: rawstring
Because this can eliminate the compilation of template arguments from the
evaluation phase, "hg log -Tdefault" gets faster.
% cd mozilla-central
% LANG=C HGRCPATH=/dev/null hg log -Tdefault -r0:10000 --time > /dev/null
before: real 4.870 secs (user 4.860+0.000 sys 0.010+0.000)
after: real 3.480 secs (user 3.440+0.000 sys 0.030+0.000)
Also, this will allow us to parse nested templates at once for better error
indication.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 13 Jun 2015 19:49:54 +0900 |
parents | 7a9cbb315d84 |
children | bf1d5c223ac0 |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
18910
diff
changeset
|
1 #require serve |
9964 | 2 |
12486 | 3 $ cat <<EOF >> $HGRCPATH |
4 > [extensions] | |
5 > schemes= | |
6 > | |
7 > [schemes] | |
8 > l = http://localhost:$HGPORT/ | |
9 > parts = http://{1}:$HGPORT/ | |
10 > z = file:\$PWD/ | |
11 > EOF | |
12 $ hg init test | |
13 $ cd test | |
14 $ echo a > a | |
15 $ hg ci -Am initial | |
16 adding a | |
18910
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
17 |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
18 invalid scheme |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
19 |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
20 $ hg log -R z:z |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
21 abort: no '://' in scheme url 'z:z' |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
22 [255] |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
23 |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
24 http scheme |
b52404a914a9
scheme: don't crash on invalid URLs
Mads Kiilerich <madski@unity3d.com>
parents:
16913
diff
changeset
|
25 |
12486 | 26 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log |
27 $ cat hg.pid >> $DAEMON_PIDS | |
28 $ hg incoming l:// | |
29 comparing with l:// | |
30 searching for changes | |
31 no changes found | |
32 [1] | |
9964 | 33 |
12486 | 34 check that {1} syntax works |
9964 | 35 |
12486 | 36 $ hg incoming --debug parts://localhost |
12643
d08bb64888bc
tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12486
diff
changeset
|
37 using http://localhost:$HGPORT/ |
13603
395a84f78736
httprepo: use caps instead of between for compat check
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
12643
diff
changeset
|
38 sending capabilities command |
13815
d066d8d652c8
url: add trailing slashes to URLs with hostnames that don't have one
Brodie Rao <brodie@bitheap.org>
parents:
13742
diff
changeset
|
39 comparing with parts://localhost/ |
14164
cb98fed52495
discovery: add new set-based discovery
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
13815
diff
changeset
|
40 query 1; heads |
14624
f03c82d1f50a
setdiscovery: batch heads and known(ownheads)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
14164
diff
changeset
|
41 sending batch command |
12486 | 42 searching for changes |
14164
cb98fed52495
discovery: add new set-based discovery
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
13815
diff
changeset
|
43 all remote heads known locally |
12486 | 44 no changes found |
45 [1] | |
9964 | 46 |
12486 | 47 check that paths are expanded |
10070
9d1195b2f00d
schemes: url parts are counted from 1
Alexander Solovyov <piranha@piranha.org.ua>
parents:
9964
diff
changeset
|
48 |
12486 | 49 $ PWD=`pwd` hg incoming z:// |
50 comparing with z:// | |
51 searching for changes | |
52 no changes found | |
53 [1] | |
11154
17031fea4e95
expand paths to local repository or bundle in appropriate classes
Alexander Solovyov <piranha@piranha.org.ua>
parents:
10070
diff
changeset
|
54 |
12486 | 55 errors |
56 | |
57 $ cat errors.log | |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
58 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15446
diff
changeset
|
59 $ cd .. |