Mercurial > hg
view tests/test-convert-svn-move @ 11765:aff419e260f9 stable
templatefilters: make json filter handle multibyte characters correctly
It aims to fix javascript error of hgweb's graph view in Japanese 'cp932'
encoding.
'cp932' contains multibyte characters ending with '\x5c' (backslash),
e.g. '\x94\x5c' for Japanese Kanji 'Noh'.
Due to json filter escapes '\' to '\\', multibyte string ending with
'\x5c' is translated to "xxx\", resulting javascript parse error on
a web browser.
This patch changes json() to pass unicode to jsonescape().
Unicode decoding error handler changed to 'replace' by Patrick Mézard.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 07 Aug 2010 16:27:16 +0900 |
parents | 73a4ed3bfef8 |
children |
line wrap: on
line source
#!/bin/sh "$TESTDIR/hghave" svn svn-bindings || exit 80 fix_path() { tr '\\' / } echo "[extensions]" >> $HGRCPATH echo "convert = " >> $HGRCPATH echo "hgext.graphlog =" >> $HGRCPATH svnadmin create svn-repo cat "$TESTDIR/svn/move.svndump" | svnadmin load svn-repo > /dev/null svnpath=`pwd | fix_path` # SVN wants all paths to start with a slash. Unfortunately, # Windows ones don't. Handle that. expr "$svnpath" : "\/" > /dev/null if [ $? -ne 0 ]; then svnpath="/$svnpath" fi svnurl="file://$svnpath/svn-repo" echo % convert trunk and branches hg convert --datesort "$svnurl"/subproject A-hg cd A-hg hg glog --template '{rev} {desc|firstline} files: {files}\n' echo '% check move copy records' hg st --rev 12:13 --copies echo '% check branches' hg branches | sed 's/:.*/:/' cd .. mkdir test-replace cd test-replace svnadmin create svn-repo cat "$TESTDIR/svn/replace.svndump" | svnadmin load svn-repo > /dev/null echo '% convert files being replaced by directories' hg convert svn-repo hg-repo cd hg-repo echo '% manifest before' hg -v manifest -r 1 echo '% manifest after clobber1' hg -v manifest -r 2 echo '% manifest after clobber2' hg -v manifest -r 3 echo '% try updating' hg up -qC default cd .. echo '% test convert progress bar' echo "progress=" >> $HGRCPATH echo "[progress]" >> $HGRCPATH echo "assume-tty=1" >> $HGRCPATH echo "delay=0" >> $HGRCPATH echo "refresh=0" >> $HGRCPATH cat > filtercr.py <<EOF import sys, re for line in sys.stdin: line = re.sub(r'\r+[^\n]', lambda m: '\n' + m.group()[-1:], line) sys.stdout.write(line) EOF hg convert svn-repo hg-progress 2>&1 | python filtercr.py