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