view tests/test-verify.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 581066a319e5
children
line wrap: on
line source

% prepare repo
adding FOO.txt
adding QUICK.txt
adding bar.txt

% verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
3 files, 1 changesets, 3 total revisions

% verify with journal
abandoned transaction found - run hg recover
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
3 files, 1 changesets, 3 total revisions

% introduce some bugs in repo

% verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
 data/FOO.txt.i@0: missing revlog!
 0: empty or missing FOO.txt
 FOO.txt@0: f62022d3d590 in manifests not found
 data/QUICK.txt.i@0: missing revlog!
 0: empty or missing QUICK.txt
 QUICK.txt@0: 88b857db8eba in manifests not found
 data/bar.txt.i@0: missing revlog!
 0: empty or missing bar.txt
 bar.txt@0: 256559129457 in manifests not found
3 files, 1 changesets, 0 total revisions
9 integrity errors encountered!
(first damaged changeset appears to be 0)
% test revlog corruption

% verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
 a@0: broken revlog! (index data/a.i is corrupted)
warning: orphan revlog 'data/a.i'
1 files, 1 changesets, 0 total revisions
1 warnings encountered!
1 integrity errors encountered!
(first damaged changeset appears to be 0)
% test revlog format 0
repository uses revlog format 0
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions