Mercurial > hg
view tests/test-mq-header-from @ 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 | e433002acb05 |
children |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "mq=" >> $HGRCPATH echo "[diff]" >> $HGRCPATH echo "nodates=true" >> $HGRCPATH catlog() { cat .hg/patches/$1.patch | sed -e "s/^diff \-r [0-9a-f]* /diff -r ... /" \ -e "s/^\(# Parent \).*/\1/" hg log --template "{rev}: {desc} - {author}\n" } runtest() { echo ==== init hg init a cd a hg qinit echo ==== qnew -U hg qnew -U 1.patch catlog 1 echo ==== qref echo "1" >1 hg add hg qref catlog 1 echo ==== qref -u hg qref -u mary catlog 1 echo ==== qnew hg qnew 2.patch echo "2" >2 hg add hg qref catlog 2 echo ==== qref -u hg qref -u jane catlog 2 echo ==== qnew -U -m hg qnew -U -m "Three" 3.patch catlog 3 echo ==== qref echo "3" >3 hg add hg qref catlog 3 echo ==== qref -m hg qref -m "Drei" catlog 3 echo ==== qref -u hg qref -u mary catlog 3 echo ==== qref -u -m hg qref -u maria -m "Three (again)" catlog 3 echo ==== qnew -m hg qnew -m "Four" 4.patch echo "4" >4of t hg add hg qref catlog 4 echo ==== qref -u hg qref -u jane catlog 4 echo ==== qnew with HG header hg qnew --config 'mq.plain=true' 5.patch hg qpop echo "# HG changeset patch" >>.hg/patches/5.patch echo "# User johndoe" >>.hg/patches/5.patch hg qpush 2>&1 | grep 'now at' catlog 5 echo ==== hg qref echo "5" >5 hg add hg qref catlog 5 echo ==== hg qref -U hg qref -U catlog 5 echo ==== hg qref -u hg qref -u johndeere catlog 5 echo ==== qnew with plain header hg qnew --config 'mq.plain=true' -U 6.patch hg qpop hg qpush 2>&1 | grep 'now at' catlog 6 echo ==== hg qref echo "6" >6 hg add hg qref catlog 6 echo ==== hg qref -U hg qref -U catlog 6 echo ==== hg qref -u hg qref -u johndeere catlog 6 echo ==== "qpop -a / qpush -a" hg qpop -a hg qpush -a hg log --template "{rev}: {desc} - {author}\n" } echo ======= plain headers echo "[mq]" >> $HGRCPATH echo "plain=true" >> $HGRCPATH mkdir sandbox (cd sandbox ; runtest) rm -r sandbox echo ======= hg headers echo "plain=false" >> $HGRCPATH mkdir sandbox (cd sandbox ; runtest) rm -r sandbox runtest