mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
1b05a52143
disabling extension leaves dirstate confused about whether affected files are clean or not, not much point testing it.
145 lines
2.5 KiB
Bash
Executable File
145 lines
2.5 KiB
Bash
Executable File
#!/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
|