view tests/test-convert-splicemap @ 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 bb5ea66789e3
children
line wrap: on
line source

#!/bin/sh

echo "[extensions]" >> $HGRCPATH
echo "convert=" >> $HGRCPATH
echo 'graphlog =' >> $HGRCPATH

glog()
{
    hg glog --template '{rev} "{desc|firstline}" files: {files}\n' "$@"
}

hg init repo1
cd repo1
echo a > a
hg ci -Am adda
echo b > b
echo a >> a
hg ci -Am addb
PARENTID1=`hg id --debug -i`
echo c > c
hg ci -Am addc
PARENTID2=`hg id --debug -i`
cd ..

hg init repo2
cd repo2
echo b > a
echo d > d
hg ci -Am addaandd
CHILDID1=`hg id --debug -i`
echo d >> d
hg ci -Am changed
CHILDID2=`hg id --debug -i`
echo e > e
hg ci -Am adde
cd ..

echo '% test invalid splicemap'
cat > splicemap <<EOF
$CHILDID2
EOF
hg convert --splicemap splicemap repo2 repo1

echo '% splice repo2 on repo1'
cat > splicemap <<EOF
$CHILDID1 $PARENTID1
$CHILDID2 $PARENTID2,$CHILDID1
EOF
hg clone repo1 target1
hg convert --splicemap splicemap repo2 target1
glog -R target1