view tests/test-win32text @ 7504:d8cd79fbed3c

Revise Bugzilla module comments into extension help. Revise the comments detailing module usage at the start of the Bugzilla extension into extension help text. Expand the detail given on extension settings, in an attempt to permit the user to configure successfully without having to study the extension code. Show a sample configuration as well.
author Jim Hague <jim.hague@acm.org>
date Wed, 10 Dec 2008 16:29:53 +0000
parents b71a52f101dc
children 441dc7becd43
line wrap: on
line source

#!/bin/sh

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

hg init
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
hg ci -m 1 -d'0 0'
echo

python unix2dos.py f
hg ci -m 2 -d'0 0'
hg revert -a
echo

mkdir d
echo hello > d/f2
python unix2dos.py d/f2
hg add d/f2
hg ci -m 3 -d'0 0'
hg revert -a
rm d/f2
echo

hg rem f
hg ci -m 4 -d'0 0'
echo

python -c 'file("bin", "wb").write("hello\x00\x0D\x0A")'
hg add bin
hg ci -m 5 -d'0 0'
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 -d'0 0' dupe/a
hg -R dupe ci -m b/c -d'0 0' dupe/[bc]
hg -R dupe ci -m d -d'0 0' 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 -d'0 0'

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 -d'0 0'
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