view tests/test-win32text @ 11059:ef4aa90b1e58

Move 'findrenames' code into its own file. The next few patches will increase the size of the "findrenames" functionality. This patch simply moves the function into its own file to avoid clutter building up in 'cmdutil.py'.
author David Greenaway <hg-dev@davidgreenaway.com>
date Sat, 03 Apr 2010 11:58:16 +1100
parents f584d63c49c3
children
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 -C 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