Mercurial > hg
view tests/test-mq-qimport.out @ 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 | 3e561b6af810 |
children | aae1dd12fce6 |
line wrap: on
line source
% qimport non-existing-file abort: unable to read file non-existing-file % import email adding email to series file applying email now at: email % hg tip -v changeset: 0:1a706973a7d8 tag: email tag: qbase tag: qtip tag: tip user: Username in patch <test@example.net> date: Thu Jan 01 00:00:00 1970 +0000 files: x description: First line of commit message. More text in commit message. popping email patch queue now empty % import URL adding url.diff to series file url.diff % import patch that already exists abort: patch "url.diff" already exists applying url.diff now at: url.diff foo popping url.diff patch queue now empty % qimport -f adding url.diff to series file applying url.diff now at: url.diff foo2 popping url.diff patch queue now empty % build diff with CRLF adding b 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % qimport CRLF diff adding b.diff to series file applying b.diff now at: b.diff % try to import --push 1 files updated, 0 files merged, 0 files removed, 0 files unresolved adding another.diff to series file applying another.diff now at: another.diff patch b.diff finalized without changeset message patch another.diff finalized without changeset message