Mercurial > hg
view tests/test-convert @ 12717:89df79b3c011 stable
convert/darcs: support changelogs with bytes 0x7F-0xFF (issue2411)
This is a followup to 4481f8a93c7a, which only fixed the conversion of
patches with UTF-8 metadata.
This patch allows a changelog to have any bytes with values
0x7F-0xFF. It parses the XML changelog as Latin-1 and uses
converter_source.recode() to decode the data as UTF-8/Latin-1.
Caveats:
- Since the convert extension doesn't provide any way to specify the
source encoding, users are still limited to UTF-8 and Latin-1.
- etree will still complain if the changelog has bytes with values
0x00-0x19. XML only allows printable characters.
author | Brodie Rao <brodie@bitheap.org> |
---|---|
date | Fri, 01 Oct 2010 10:15:04 -0500 |
parents | 9e4d120e3c32 |
children |
line wrap: on
line source
#!/bin/sh cat >> $HGRCPATH <<EOF [extensions] convert= [convert] hg.saverev=False EOF hg help convert hg init a cd a echo a > a hg ci -d'0 0' -Ama hg cp a b hg ci -d'1 0' -mb hg rm a hg ci -d'2 0' -mc hg mv b a hg ci -d'3 0' -md echo a >> a hg ci -d'4 0' -me cd .. hg convert a 2>&1 | grep -v 'subversion python bindings could not be loaded' hg --cwd a-hg pull ../a touch bogusfile echo % should fail hg convert a bogusfile mkdir bogusdir chmod 000 bogusdir echo % should fail hg convert a bogusdir echo % should succeed chmod 700 bogusdir hg convert a bogusdir echo % test pre and post conversion actions echo 'include b' > filemap hg convert --debug --filemap filemap a partialb | \ grep 'run hg' echo % converting empty dir should fail "nicely" mkdir emptydir # override $PATH to ensure p4 not visible; use $PYTHON in case we're # running from a devel copy, not a temp installation PATH="$BINDIR" $PYTHON "$BINDIR"/hg convert emptydir 2>&1 | sed 's,file://.*/emptydir,.../emptydir,g' echo % convert with imaginary source type hg convert --source-type foo a a-foo echo % convert with imaginary sink type hg convert --dest-type foo a a-foo echo echo % "testing: convert must not produce duplicate entries in fncache" hg convert a b echo % "contents of fncache file:" cat b/.hg/store/fncache echo '% test bogus URL' hg convert -q bzr+ssh://foobar@selenic.com/baz baz true