Mercurial > hg
view tests/test-mq-qfold @ 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 | 8cb81d75730c |
children |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "mq=" >> $HGRCPATH echo "[mq]" >> $HGRCPATH echo "git=keep" >> $HGRCPATH filterdiff() { grep -v diff | \ sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" } filterpatch() { sed -e "s/\(# Parent \).*/\1/" } echo '% init' hg init repo cd repo echo a > a hg ci -Am adda echo a >> a hg qnew -f p1 echo b >> a hg qnew -f p2 echo c >> a hg qnew -f p3 echo '% fold in the middle of the queue' hg qpop p1 hg qdiff | filterdiff hg qfold p2 grep git .hg/patches/p1 && echo 'git patch found!' hg qser hg qdiff | filterdiff echo '% fold with local changes' echo d >> a hg qfold p3 hg diff -c . | filterdiff hg revert -a --no-backup echo '% fold git patch into a regular patch, expect git patch' echo a >> a hg qnew -f regular hg cp a aa hg qnew --git -f git hg qpop hg qfold git cat .hg/patches/regular | filterpatch hg qpop hg qdel regular echo '% fold regular patch into a git patch, expect git patch' hg cp a aa hg qnew --git -f git echo b >> aa hg qnew -f regular hg qpop hg qfold regular cat .hg/patches/git | filterpatch cd ..