view tests/test-win32text @ 8669:6f0f69da003e

commands: typo in bundle abort message This error trigger if one calls bundle with the wrong parameters and it is thus not an error scripts will want to look for (they could and should ensure that they call bundle with the correct parameters).
author Martin Geisler <mg@lazybytes.net>
date Sun, 31 May 2009 18:09:19 +0200
parents 6c82beaaa11a
children a964ab624385
line wrap: on
line source

#!/bin/sh

hg init t
cd t

cat > unix2dos.py <<EOF
import sys

for path in sys.argv[1:]:
    data = file(path, 'rb').read()
    data = data.replace('\n', '\r\n')
    file(path, 'wb').write(data)
EOF

cat > print.py <<EOF
import sys
print(sys.stdin.read().replace('\n', '<LF>').replace('\r', '<CR>').replace('\0', '<NUL>'))
EOF

echo '[hooks]' >> .hg/hgrc
echo 'pretxncommit.crlf = python:hgext.win32text.forbidcrlf' >> .hg/hgrc
echo 'pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf' >> .hg/hgrc
cat .hg/hgrc
echo

echo hello > f
hg add f
echo commit should succeed
hg ci -m 1
echo

hg clone . ../zoz
cp .hg/hgrc ../zoz/.hg

python unix2dos.py f
echo commit should fail
hg ci -m 2.1
echo

mv .hg/hgrc .hg/hgrc.bak
echo commits should succeed
hg ci -m 2
hg cp f g
hg ci -m 2.2
echo

echo push should fail
hg push ../zoz
echo

mv .hg/hgrc.bak .hg/hgrc
echo hello > f
hg rm g
echo commit should succeed
hg ci -m 2.3
echo

echo push should succeed
hg push ../zoz
echo

echo and now for something completely different
mkdir d
echo hello > d/f2
python unix2dos.py d/f2
hg add d/f2
hg ci -m 3
hg revert -a
rm d/f2
echo

hg rem f
hg ci -m 4
echo

python -c 'file("bin", "wb").write("hello\x00\x0D\x0A")'
hg add bin
hg ci -m 5
hg log -v
echo

hg clone . dupe
echo
for x in a b c d; do echo content > dupe/$x; done
hg -R dupe add
python unix2dos.py dupe/b dupe/c dupe/d
hg -R dupe ci -m a dupe/a
hg -R dupe ci -m b/c dupe/[bc]
hg -R dupe ci -m d dupe/d
hg -R dupe log -v
echo

hg pull dupe
echo

hg log -v
echo

rm .hg/hgrc
(echo some; echo text) > f3
python -c 'file("f4.bat", "wb").write("rem empty\x0D\x0A")'
hg add f3 f4.bat
hg ci -m 6

python print.py < bin
python print.py < f3
python print.py < f4.bat
echo

echo '[extensions]' >> .hg/hgrc
echo 'win32text = ' >> .hg/hgrc
echo '[decode]' >> .hg/hgrc
echo '** = cleverdecode:' >> .hg/hgrc
echo '[encode]' >> .hg/hgrc
echo '** = cleverencode:' >> .hg/hgrc
cat .hg/hgrc
echo

rm f3 f4.bat bin
hg co 2>&1 | python -c 'import sys, os; sys.stdout.write(sys.stdin.read().replace(os.getcwd(), "...."))'
python print.py < bin
python print.py < f3
python print.py < f4.bat
echo

python -c 'file("f5.sh", "wb").write("# empty\x0D\x0A")'
hg add f5.sh
hg ci -m 7
python print.py < f5.sh
hg cat f5.sh | python print.py

echo '% just linefeed' > linefeed
hg ci -qAm 8 linefeed
python print.py < linefeed
hg cat linefeed | python print.py
hg st -q
hg revert -a linefeed
python print.py < linefeed
hg st -q
echo modified >> linefeed
hg st -q
hg revert -a
hg st -q
python print.py < linefeed

echo "# disable extension again"
echo '[decode]' >> .hg/hgrc
echo '** = !' >> .hg/hgrc
echo '[encode]' >> .hg/hgrc
echo '** = !' >> .hg/hgrc
cat .hg/hgrc
echo

rm f3 f4.bat bin
hg co 2>&1 | python -c 'import sys, os; sys.stdout.write(sys.stdin.read().replace(os.getcwd(), "...."))'
python print.py < bin
python print.py < f3
python print.py < f4.bat
echo