tests/test-encoding
author Martin Geisler <mg@lazybytes.net>
Fri, 03 Sep 2010 12:58:51 +0200
changeset 12165 b7fbf24c8a93
parent 12156 4c94b6d0fb1c
permissions -rwxr-xr-x
match: add narrowmatcher class This class can be used to adapt an existing match object to a new match object that only cares about paths within a certain subdirectory.

#!/bin/sh

hg init t
cd t

# we need a repo with some legacy latin-1 changesets
hg unbundle $TESTDIR/legacy-encoding.hg
hg co

python << EOF
f = file('latin-1', 'w'); f.write("latin-1 e' encoded: \xe9"); f.close()
f = file('utf-8', 'w'); f.write("utf-8 e' encoded: \xc3\xa9"); f.close()
f = file('latin-1-tag', 'w'); f.write("\xe9"); f.close()
EOF

echo % should fail with encoding error
echo "plain old ascii" > a
hg st
HGENCODING=ascii hg ci -l latin-1

echo % these should work
echo "latin-1" > a
HGENCODING=latin-1 hg ci -l latin-1
echo "utf-8" > a
HGENCODING=utf-8 hg ci -l utf-8

HGENCODING=latin-1 hg tag `cat latin-1-tag`
HGENCODING=latin-1 hg branch `cat latin-1-tag`
HGENCODING=latin-1 hg ci -m 'latin1 branch'
rm .hg/branch

echo "% hg log (ascii)"
hg --encoding ascii log
echo "% hg log (latin-1)"
hg --encoding latin-1 log
echo "% hg log (utf-8)"
hg --encoding utf-8 log
echo "% hg tags (ascii)"
HGENCODING=ascii hg tags
echo "% hg tags (latin-1)"
HGENCODING=latin-1 hg tags
echo "% hg tags (utf-8)"
HGENCODING=utf-8 hg tags
echo "% hg branches (ascii)"
HGENCODING=ascii hg branches
echo "% hg branches (latin-1)"
HGENCODING=latin-1 hg branches
echo "% hg branches (utf-8)"
HGENCODING=utf-8 hg branches

echo '[ui]' >> .hg/hgrc
echo 'fallbackencoding = koi8-r' >> .hg/hgrc
echo "% hg log (utf-8)"
HGENCODING=utf-8 hg log

echo "% hg log (dolphin)"
HGENCODING=dolphin hg log

HGENCODING=ascii hg branch `cat latin-1-tag`
cp latin-1-tag .hg/branch
HGENCODING=latin-1 hg ci -m 'should fail'
exit 0