Mercurial > hg
view tests/test-simplemerge-cmd @ 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 | 0eb8c4df61bd |
children |
line wrap: on
line source
#!/bin/sh cp "$TESTDIR"/../contrib/simplemerge . echo base > base echo local > local cat base >> local cp local orig cat base > other echo other >> other echo '% changing local directly' python simplemerge local base other && echo "merge succeeded" cat local cp orig local echo '% printing to stdout' python simplemerge -p local base other echo ' local:' cat local echo '% conflicts' cp base conflict-local cp other conflict-other echo not other >> conflict-local echo end >> conflict-local echo end >> conflict-other python simplemerge -p conflict-local base conflict-other || echo "merge failed" echo '% --no-minimal' python simplemerge -p --no-minimal conflict-local base conflict-other echo '% 1 label' python simplemerge -p -L foo conflict-local base conflict-other echo '% 2 labels' python simplemerge -p -L foo -L bar conflict-local base conflict-other echo '% too many labels' python simplemerge -p -L foo -L bar -L baz conflict-local base conflict-other echo '% binary file' python -c "f = file('binary-local', 'w'); f.write('\x00'); f.close()" cat orig >> binary-local python simplemerge -p binary-local base other echo '% binary file --text' python simplemerge -a -p binary-local base other 2>&1 | $TESTDIR/printrepr.py echo '% help' python simplemerge --help echo '% wrong number of arguments' python simplemerge echo '% bad option' python simplemerge --foo -p local base other exit 0