Mercurial > hg
view tests/test-convert-bzr-directories @ 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 | 9e6d6568bf7a |
children |
line wrap: on
line source
#!/bin/sh . "$TESTDIR/bzr-definitions" echo % empty directory mkdir test-empty cd test-empty bzr init -q source cd source echo content > a bzr add -q a bzr commit -q -m 'Initial add' mkdir empty bzr add -q empty bzr commit -q -m 'Empty directory added' echo content > empty/something bzr add -q empty/something bzr commit -q -m 'Added file into directory' cd .. hg convert source source-hg manifest source-hg 1 manifest source-hg tip cd .. echo % directory renames mkdir test-dir-rename cd test-dir-rename bzr init -q source cd source mkdir tpyo echo content > tpyo/something bzr add -q tpyo bzr commit -q -m 'Added directory' bzr mv tpyo typo bzr commit -q -m 'Oops, typo' cd .. hg convert source source-hg manifest source-hg 0 manifest source-hg tip cd .. echo % nested directory renames mkdir test-nested-dir-rename cd test-nested-dir-rename bzr init -q source cd source mkdir -p firstlevel/secondlevel/thirdlevel echo content > firstlevel/secondlevel/file echo this_needs_to_be_there_too > firstlevel/secondlevel/thirdlevel/stuff bzr add -q firstlevel bzr commit -q -m 'Added nested directories' bzr mv firstlevel/secondlevel secondlevel bzr commit -q -m 'Moved secondlevel one level up' cd .. hg convert source source-hg manifest source-hg tip cd .. echo % directory remove mkdir test-dir-remove cd test-dir-remove bzr init -q source cd source mkdir src echo content > src/sourcecode bzr add -q src bzr commit -q -m 'Added directory' bzr rm -q src bzr commit -q -m 'Removed directory' cd .. hg convert source source-hg manifest source-hg 0 manifest source-hg tip cd .. echo % directory replace mkdir test-dir-replace cd test-dir-replace bzr init -q source cd source mkdir first second echo content > first/file echo morecontent > first/dummy echo othercontent > second/something bzr add -q first second bzr commit -q -m 'Initial layout' bzr mv first/file second/file bzr mv first third bzr commit -q -m 'Some conflicting moves' cd .. hg convert source source-hg manifest source-hg tip cd ..