Mercurial > hg
view tests/test-mv-cp-st-diff @ 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 | 83cfa1baf8ad |
children |
line wrap: on
line source
#!/bin/sh add() { echo $2 >> $1 } hg init t cd t # set up a boring main branch add a a hg add a mkdir x add x/x x hg add x/x hg ci -m0 add a m1 hg ci -m1 add a m2 add x/y y1 hg add x/y hg ci -m2 cd .. show() { echo "- $2: $1" hg st -C $1 echo hg diff --git $1 echo } count=0 # make a new branch and get diff/status output # $1 - first commit # $2 - second commit # $3 - working dir action # $4 - test description tb() { hg clone t t2 ; cd t2 hg co -q -C 0 add a $count count=`expr $count + 1` hg ci -m "t0" $1 hg ci -m "t1" $2 hg ci -m "t2" $3 echo "** $4 **" echo "** $1 / $2 / $3" show "" "working to parent" show "--rev 0" "working to root" show "--rev 2" "working to branch" show "--rev 0 --rev ." "root to parent" show "--rev . --rev 0" "parent to root" show "--rev 2 --rev ." "branch to parent" show "--rev . --rev 2" "parent to branch" echo cd .. rm -rf t2 } tb "add a a1" "add a a2" "hg mv a b" "rename in working dir" tb "add a a1" "add a a2" "hg cp a b" "copy in working dir" tb "hg mv a b" "add b b1" "add b w" "single rename" tb "hg cp a b" "add b b1" "add a w" "single copy" tb "hg mv a b" "hg mv b c" "hg mv c d" "rename chain" tb "hg cp a b" "hg cp b c" "hg cp c d" "copy chain" tb "add a a1" "hg mv a b" "hg mv b a" "circular rename" tb "hg mv x y" "add y/x x1" "add y/x x2" "directory move" # Cannot implement unrelated branch with tb echo '% testing copies with unrelated branch' hg init unrelated cd unrelated add a a hg ci -Am adda hg mv a b hg ci -m movea hg up -C null add a a hg ci -Am addunrelateda echo '% unrelated branch diff' hg diff --git -r 2 -r 1 cd ..