Mercurial > hg
view tests/test-grep @ 12252:4481f8a93c7a stable
convert/darcs: handle non-ASCII metadata in darcs changelog (issue2354)
Given a commit author or message with non-ASCII characters in a darcs
repo, convert would raise a UnicodeEncodeError when adding changesets
to the hg changelog.
This happened because etree returns back unicode objects for any text
it can't encode into ASCII. convert was passing these objects to
changelog.add(), which would then attempt encoding.fromlocal() on
them.
This patch ensures converter_source.recode() is called on each piece
of commit data returned by etree.
(Also note that darcs is currently encoding agnostic and will print
out whatever is in a patch's metadata byte-for-byte, even in the XML
changelog.)
author | Brodie Rao <brodie@bitheap.org> |
---|---|
date | Fri, 10 Sep 2010 09:30:50 -0500 |
parents | df5d1d571d27 |
children |
line wrap: on
line source
#!/bin/sh mkdir t cd t hg init echo import > port hg add port hg commit -m 0 -u spam -d '0 0' echo export >> port hg commit -m 1 -u eggs -d '1 0' echo export > port echo vaportight >> port echo 'import/export' >> port hg commit -m 2 -u spam -d '2 0' echo 'import/export' >> port hg commit -m 3 -u eggs -d '3 0' head -n 3 port > port1 mv port1 port hg commit -m 4 -u spam -d '4 0' echo % pattern error hg grep '**test**' echo % simple hg grep port port echo % simple with color hg --config extensions.color= grep --config color.mode=ansi \ --color=always port port echo % all hg grep --traceback --all -nu port port echo % other hg grep import port hg cp port port2 hg commit -m 4 -u spam -d '5 0' echo % follow hg grep --traceback -f 'import$' port2 echo deport >> port2 hg commit -m 5 -u eggs -d '6 0' hg grep -f --all -nu port port2 cd .. hg init t2 cd t2 hg grep foobar foo hg grep foobar echo blue >> color echo black >> color hg add color hg ci -m 0 echo orange >> color hg ci -m 1 echo black > color hg ci -m 2 echo orange >> color echo blue >> color hg ci -m 3 hg grep orange hg grep --all orange echo % match in last "line" without newline python -c 'fp = open("noeol", "wb"); fp.write("no infinite loop"); fp.close();' hg ci -Amnoeol echo % last character omitted in output to avoid infinite loop hg grep loop # Got a traceback when using grep on a single # revision with renamed files. cd .. echo % issue 685 hg init issue685 cd issue685 echo octarine > color hg ci -Amcolor hg rename color colour hg ci -Am rename hg grep octarine # Used to crash here hg grep -r 1 octarine # Issue337: test that grep follows parent-child relationships instead # of just using revision numbers. cd .. echo % issue 337 hg init issue337 cd issue337 echo white > color hg commit -A -m "0 white" echo red > color hg commit -A -m "1 red" hg update 0 echo black > color hg commit -A -m "2 black" hg update --clean 1 echo blue > color hg commit -A -m "3 blue" hg grep --all red