Mercurial > hg
view tests/test-diff-upgrade.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 | e451e599fbcf |
children | 9b3913baba0c |
line wrap: on
line source
% make a combination of new, changed and deleted file adding binary adding exec adding regular adding rmbinary adding rmempty adding rmexec adding rmregular adding setexec adding unsetexec adding newbinary adding newempty adding newexec adding newregular removing rmbinary removing rmempty removing rmexec removing rmregular % git=no: regular diff for all files diff -r b3f053cd7c7f binary Binary file binary has changed diff -r b3f053cd7c7f exec --- a/exec +++ b/exec @@ -1,1 +1,2 @@ exec +exec diff -r b3f053cd7c7f newbinary Binary file newbinary has changed diff -r b3f053cd7c7f newexec --- /dev/null +++ b/newexec @@ -0,0 +1,1 @@ +newexec diff -r b3f053cd7c7f newregular --- /dev/null +++ b/newregular @@ -0,0 +1,1 @@ +newregular diff -r b3f053cd7c7f regular --- a/regular +++ b/regular @@ -1,1 +1,2 @@ regular +regular diff -r b3f053cd7c7f rmbinary Binary file rmbinary has changed diff -r b3f053cd7c7f rmexec --- a/rmexec +++ /dev/null @@ -1,1 +0,0 @@ -rmexec diff -r b3f053cd7c7f rmregular --- a/rmregular +++ /dev/null @@ -1,1 +0,0 @@ -rmregular % git=no: git diff for single regular file diff --git a/regular b/regular --- a/regular +++ b/regular @@ -1,1 +1,2 @@ regular +regular % git=auto: regular diff for regular files and removals diff -r b3f053cd7c7f newregular --- /dev/null +++ b/newregular @@ -0,0 +1,1 @@ +newregular diff -r b3f053cd7c7f regular --- a/regular +++ b/regular @@ -1,1 +1,2 @@ regular +regular diff -r b3f053cd7c7f rmbinary Binary file rmbinary has changed diff -r b3f053cd7c7f rmexec --- a/rmexec +++ /dev/null @@ -1,1 +0,0 @@ -rmexec diff -r b3f053cd7c7f rmregular --- a/rmregular +++ /dev/null @@ -1,1 +0,0 @@ -rmregular % git=auto: git diff for exec diff -r b3f053cd7c7f exec --- a/exec +++ b/exec @@ -1,1 +1,2 @@ exec +exec % git=auto: git diff for newexec diff --git a/newexec b/newexec new file mode 100755 --- /dev/null +++ b/newexec @@ -0,0 +1,1 @@ +newexec % git=auto: git diff for setexec diff --git a/setexec b/setexec old mode 100644 new mode 100755 % git=auto: git diff for unsetexec diff --git a/unsetexec b/unsetexec old mode 100755 new mode 100644 % git=auto: git diff for binary diff --git a/binary b/binary index a9128c283485202893f5af379dd9beccb6e79486..09f370e38f498a462e1ca0faa724559b6630c04f GIT binary patch literal 2 Jc${Nk0000200961 % git=auto: git diff for newbinary diff --git a/newbinary b/newbinary new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 Ic${MZ000310RR91 % git=auto: git diff for newempty diff --git a/newempty b/newempty new file mode 100644 % git=auto: git diff for rmempty diff --git a/rmempty b/rmempty deleted file mode 100644 % git=warn: regular diff with data loss warnings diff -r b3f053cd7c7f binary Binary file binary has changed diff -r b3f053cd7c7f exec --- a/exec +++ b/exec @@ -1,1 +1,2 @@ exec +exec diff -r b3f053cd7c7f newbinary Binary file newbinary has changed diff -r b3f053cd7c7f newexec --- /dev/null +++ b/newexec @@ -0,0 +1,1 @@ +newexec diff -r b3f053cd7c7f newregular --- /dev/null +++ b/newregular @@ -0,0 +1,1 @@ +newregular diff -r b3f053cd7c7f regular --- a/regular +++ b/regular @@ -1,1 +1,2 @@ regular +regular diff -r b3f053cd7c7f rmbinary Binary file rmbinary has changed diff -r b3f053cd7c7f rmexec --- a/rmexec +++ /dev/null @@ -1,1 +0,0 @@ -rmexec diff -r b3f053cd7c7f rmregular --- a/rmregular +++ /dev/null @@ -1,1 +0,0 @@ -rmregular data lost for: binary data lost for: newbinary data lost for: newempty data lost for: newexec data lost for: rmempty data lost for: setexec data lost for: unsetexec % git=abort: fail on execute bit change abort: losing data for setexec % git=abort: succeed on regular file diff -r b3f053cd7c7f regular --- a/regular +++ b/regular @@ -1,1 +1,2 @@ regular +regular