view tests/test-encoding @ 5369:7530334bf301

revlog: generate trivial deltas against null revision To avoid extra memory usage and performance issues with large files, generate a trivial delta header for deltas against the null revision rather than calling the usual delta generator. We append the delta header to meta rather than prepending it to data to avoid a large allocate and copy.
author Matt Mackall <mpm@selenic.com>
date Wed, 03 Oct 2007 17:17:27 -0500
parents 46abbed02b2d
children
line wrap: on
line source

#!/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 -d "1000000 0"

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

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

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

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

HGENCODING=dolphin hg log

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