tests/test-issue660
author Shun-ichi GOTO <shunichi.goto@gmail.com>
Wed, 09 Jan 2008 22:41:30 +0900
changeset 5846 02884e56c217
parent 5516 f252ba975925
child 6210 942287cb1f57
permissions -rwxr-xr-x
New extension to support problematic MBCS on Windows. The aim of this extension is to clear the problem related to having 0x5c in 2nd byte of encoded bytes. So this extension is usefull for: * Japanese Windows user shift_jis encoding. * Chinese Windows user using big5 encoding. To use this extension, simply enable it without any customization. Note that some important python built-in functions and mercurial functions are altered for this extension to convert argument if need to handle MBCS.

#!/bin/sh
# http://www.selenic.com/mercurial/bts/issue660


hg init a
cd a
echo a > a
mkdir b
echo b > b/b
hg commit -A -m "a is file, b is dir"

echo % file replaced with directory

rm a
mkdir a
echo a > a/a

echo % should fail - would corrupt dirstate
hg add a/a 

echo % removing shadow
hg rm --after a

echo % should succeed - shadow removed
hg add a/a

echo % directory replaced with file

rm -r b
echo b > b

echo % should fail - would corrupt dirstate
hg add b

echo % removing shadow
hg rm --after b/b

echo % should succeed - shadow removed
hg add b

echo % look what we got
hg st

echo % revert reintroducing shadow - should fail
rm -r a b
hg revert b/b

echo % revert all - should succeed
hg revert --all
hg st

echo % addremove

rm -r a b
mkdir a
echo a > a/a
echo b > b

hg addremove
hg st

echo % commit
hg ci -A -m "a is dir, b is file"
hg st --all

echo % long directory replaced with file

mkdir d
mkdir d/d
echo d > d/d/d
hg commit -A -m "d is long directory"
rm -r d
echo d > d

echo % should fail - would corrupt dirstate
hg add d

echo % removing shadow
hg rm --after d/d/d

echo % should succeed - shadow removed
hg add d
hg ci -md

echo % update should work at least with clean workdir

rm -r a b d
hg up -r 0
hg st --all
rm -r a b
hg up -r 1
hg st --all

exit 0