view tests/test-template-engine @ 9827:4fe9ca519637

mdiff: fix diff -b/B/w on mixed whitespace hunks (issue127) Previous code was computing hunks then checking if these hunks could be ignored when taking whitespace/blank-lines options in accounts. This approach is simple but fails with hunks containing both whitespace and non-whitespace changes, the whole hunk is emitted while it can be mostly made of whitespace. The new version normalize the whitespaces before hunk generation, and test for blank-lines afterwards.
author Patrick Mezard <pmezard@gmail.com>
date Wed, 11 Nov 2009 18:31:42 +0100
parents d4d4da54ab05
children 1a85861f59af
line wrap: on
line source

#!/bin/sh

cat > engine.py << EOF

from mercurial import templater

class mytemplater(object):
    def __init__(self, loader, filters, defaults):
        self.loader = loader

    def process(self, t, map):
        tmpl = self.loader(t)
        for k, v in map.iteritems():
            v = templater.stringify(v)
            tmpl = tmpl.replace('{{%s}}' % k, v)
        yield tmpl

templater.engines['my'] = mytemplater
EOF

hg init test
echo '[extensions]' > test/.hg/hgrc
echo "engine = `pwd`/engine.py" >> test/.hg/hgrc

cd test
cat > mymap << EOF
changeset = my:changeset.txt
EOF

cat > changeset.txt << EOF
{{rev}} {{node}} {{author}}
EOF

hg ci -Ama
hg log --style=./mymap