annotate tests/test-template-engine.t @ 14732:e9ed3506f066 stable

backout of d04ba50e104d: allow to qpop/push with a dirty working copy The new behavior was breaking existing tools that relied on a sequence such as this: 1) start with a dirty working copy 2) qimport some patch 3) try to qpush it 4) old behavior would fail at this point due to outstanding changes. (new behavior would only fail if the outstanding changes and the patches changes intersect) 5) innocent user qrefreshes, gets his local changes in the imported patch It's worth considering if we can move this behavior to -f in the future.
author Idan Kamara <idankk86@gmail.com>
date Fri, 24 Jun 2011 23:25:42 +0300
parents dc6b9b3bf63e
children f2719b387380
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8361
d8c5a7f25a40 templater: make the templating engine pluggable to some extent
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
1
12493
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
2 $ cat > engine.py << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
3 >
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
4 > from mercurial import templater
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
5 >
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
6 > class mytemplater(object):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
7 > def __init__(self, loader, filters, defaults):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
8 > self.loader = loader
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
9 >
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
10 > def process(self, t, map):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
11 > tmpl = self.loader(t)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
12 > for k, v in map.iteritems():
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
13 > if k in ('templ', 'ctx', 'repo', 'revcache', 'cache'):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
14 > continue
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
15 > if hasattr(v, '__call__'):
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
16 > v = v(**map)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
17 > v = templater.stringify(v)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
18 > tmpl = tmpl.replace('{{%s}}' % k, v)
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
19 > yield tmpl
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
20 >
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
21 > templater.engines['my'] = mytemplater
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
22 > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
23 $ hg init test
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
24 $ echo '[extensions]' > test/.hg/hgrc
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
25 $ echo "engine = `pwd`/engine.py" >> test/.hg/hgrc
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
26 $ cd test
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
27 $ cat > mymap << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
28 > changeset = my:changeset.txt
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
29 > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
30 $ cat > changeset.txt << EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
31 > {{rev}} {{node}} {{author}}
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
32 > EOF
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
33 $ hg ci -Ama
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
34 adding changeset.txt
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
35 adding mymap
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
36 $ hg log --style=./mymap
dc6b9b3bf63e tests: unify test-template-engine
Matt Mackall <mpm@selenic.com>
parents: 10057
diff changeset
37 0 97e5f848f0936960273bbf75be6388cd0350a32b test