Mercurial > hg
view tests/test-merge1 @ 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 | 6d36fc70754e |
children |
line wrap: on
line source
#!/bin/sh cat <<EOF > merge import sys, os try: import msvcrt msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) except ImportError: pass print "merging for", os.path.basename(sys.argv[1]) EOF HGMERGE="python ../merge"; export HGMERGE mkdir t cd t hg init echo This is file a1 > a hg add a hg commit -m "commit #0" -d "1000000 0" echo This is file b1 > b hg add b hg commit -m "commit #1" -d "1000000 0" hg update 0 echo This is file c1 > c hg add c hg commit -m "commit #2" -d "1000000 0" echo This is file b1 > b echo %% no merges expected hg merge -P 1 hg merge 1 hg diff --nodates hg status cd ..; rm -r t mkdir t cd t hg init echo This is file a1 > a hg add a hg commit -m "commit #0" -d "1000000 0" echo This is file b1 > b hg add b hg commit -m "commit #1" -d "1000000 0" hg update 0 echo This is file c1 > c hg add c hg commit -m "commit #2" -d "1000000 0" echo This is file b2 > b echo %% merge should fail hg merge 1 echo %% merge of b expected hg merge -f 1 hg diff --nodates hg status cd ..; rm -r t echo %% mkdir t cd t hg init echo This is file a1 > a hg add a hg commit -m "commit #0" -d "1000000 0" echo This is file b1 > b hg add b hg commit -m "commit #1" -d "1000000 0" echo This is file b22 > b hg commit -m "commit #2" -d "1000000 0" hg update 1 echo This is file c1 > c hg add c hg commit -m "commit #3" -d "1000000 0" echo 'Contents of b should be "this is file b1"' cat b echo This is file b22 > b echo %% merge fails hg merge 2 echo %% merge expected! hg merge -f 2 hg diff --nodates hg status cd ..; rm -r t mkdir t cd t hg init echo This is file a1 > a hg add a hg commit -m "commit #0" -d "1000000 0" echo This is file b1 > b hg add b hg commit -m "commit #1" -d "1000000 0" echo This is file b22 > b hg commit -m "commit #2" -d "1000000 0" hg update 1 echo This is file c1 > c hg add c hg commit -m "commit #3" -d "1000000 0" echo This is file b33 > b echo %% merge of b should fail hg merge 2 echo %% merge of b expected hg merge -f 2 hg diff --nodates hg status