mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
tests: unify test-win32text
This commit is contained in:
parent
d95a37b8f2
commit
9a63c93203
@ -1,144 +0,0 @@
|
||||
#!/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
|
@ -1,304 +0,0 @@
|
||||
[hooks]
|
||||
pretxncommit.crlf = python:hgext.win32text.forbidcrlf
|
||||
pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf
|
||||
|
||||
commit should succeed
|
||||
|
||||
updating to branch default
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
commit should fail
|
||||
Attempt to commit or push text file(s) using CRLF line endings
|
||||
in f583ea08d42a: f
|
||||
transaction abort!
|
||||
rollback completed
|
||||
abort: pretxncommit.crlf hook failed
|
||||
|
||||
commits should succeed
|
||||
|
||||
push should fail
|
||||
pushing to ../zoz
|
||||
searching for changes
|
||||
adding changesets
|
||||
adding manifests
|
||||
adding file changes
|
||||
added 2 changesets with 2 changes to 2 files
|
||||
Attempt to commit or push text file(s) using CRLF line endings
|
||||
in bc2d09796734: g
|
||||
in b1aa5cde7ff4: f
|
||||
|
||||
To prevent this mistake in your local repository,
|
||||
add to Mercurial.ini or .hg/hgrc:
|
||||
|
||||
[hooks]
|
||||
pretxncommit.crlf = python:hgext.win32text.forbidcrlf
|
||||
|
||||
and also consider adding:
|
||||
|
||||
[extensions]
|
||||
win32text =
|
||||
[encode]
|
||||
** = cleverencode:
|
||||
[decode]
|
||||
** = cleverdecode:
|
||||
transaction abort!
|
||||
rollback completed
|
||||
abort: pretxnchangegroup.crlf hook failed
|
||||
|
||||
commit should succeed
|
||||
|
||||
push should succeed
|
||||
pushing to ../zoz
|
||||
searching for changes
|
||||
adding changesets
|
||||
adding manifests
|
||||
adding file changes
|
||||
added 3 changesets with 3 changes to 2 files
|
||||
|
||||
and now for something completely different
|
||||
Attempt to commit or push text file(s) using CRLF line endings
|
||||
in 053ba1a3035a: d/f2
|
||||
transaction abort!
|
||||
rollback completed
|
||||
abort: pretxncommit.crlf hook failed
|
||||
forgetting d/f2
|
||||
|
||||
|
||||
changeset: 5:f0b1c8d75fce
|
||||
tag: tip
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: bin
|
||||
description:
|
||||
5
|
||||
|
||||
|
||||
changeset: 4:77796dbcd4ad
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
4
|
||||
|
||||
|
||||
changeset: 3:7c1b5430b350
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f g
|
||||
description:
|
||||
2.3
|
||||
|
||||
|
||||
changeset: 2:bc2d09796734
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: g
|
||||
description:
|
||||
2.2
|
||||
|
||||
|
||||
changeset: 1:b1aa5cde7ff4
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
2
|
||||
|
||||
|
||||
changeset: 0:fcf06d5c4e1d
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
1
|
||||
|
||||
|
||||
|
||||
updating to branch default
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
|
||||
adding dupe/a
|
||||
adding dupe/b
|
||||
adding dupe/c
|
||||
adding dupe/d
|
||||
changeset: 8:67ac5962ab43
|
||||
tag: tip
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: d
|
||||
description:
|
||||
d
|
||||
|
||||
|
||||
changeset: 7:68c127d1834e
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: b c
|
||||
description:
|
||||
b/c
|
||||
|
||||
|
||||
changeset: 6:adbf8bf7f31d
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: a
|
||||
description:
|
||||
a
|
||||
|
||||
|
||||
changeset: 5:f0b1c8d75fce
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: bin
|
||||
description:
|
||||
5
|
||||
|
||||
|
||||
changeset: 4:77796dbcd4ad
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
4
|
||||
|
||||
|
||||
changeset: 3:7c1b5430b350
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f g
|
||||
description:
|
||||
2.3
|
||||
|
||||
|
||||
changeset: 2:bc2d09796734
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: g
|
||||
description:
|
||||
2.2
|
||||
|
||||
|
||||
changeset: 1:b1aa5cde7ff4
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
2
|
||||
|
||||
|
||||
changeset: 0:fcf06d5c4e1d
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
1
|
||||
|
||||
|
||||
|
||||
pulling from dupe
|
||||
searching for changes
|
||||
adding changesets
|
||||
adding manifests
|
||||
adding file changes
|
||||
added 3 changesets with 4 changes to 4 files
|
||||
Attempt to commit or push text file(s) using CRLF line endings
|
||||
in 67ac5962ab43: d
|
||||
in 68c127d1834e: b
|
||||
in 68c127d1834e: c
|
||||
|
||||
To prevent this mistake in your local repository,
|
||||
add to Mercurial.ini or .hg/hgrc:
|
||||
|
||||
[hooks]
|
||||
pretxncommit.crlf = python:hgext.win32text.forbidcrlf
|
||||
|
||||
and also consider adding:
|
||||
|
||||
[extensions]
|
||||
win32text =
|
||||
[encode]
|
||||
** = cleverencode:
|
||||
[decode]
|
||||
** = cleverdecode:
|
||||
transaction abort!
|
||||
rollback completed
|
||||
abort: pretxnchangegroup.crlf hook failed
|
||||
|
||||
changeset: 5:f0b1c8d75fce
|
||||
tag: tip
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: bin
|
||||
description:
|
||||
5
|
||||
|
||||
|
||||
changeset: 4:77796dbcd4ad
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
4
|
||||
|
||||
|
||||
changeset: 3:7c1b5430b350
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f g
|
||||
description:
|
||||
2.3
|
||||
|
||||
|
||||
changeset: 2:bc2d09796734
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: g
|
||||
description:
|
||||
2.2
|
||||
|
||||
|
||||
changeset: 1:b1aa5cde7ff4
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
2
|
||||
|
||||
|
||||
changeset: 0:fcf06d5c4e1d
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
1
|
||||
|
||||
|
||||
|
||||
hello<NUL><CR><LF>
|
||||
some<LF>text<LF>
|
||||
rem empty<CR><LF>
|
||||
|
||||
[extensions]
|
||||
win32text =
|
||||
[decode]
|
||||
** = cleverdecode:
|
||||
[encode]
|
||||
** = cleverencode:
|
||||
|
||||
WARNING: f4.bat already has CRLF line endings
|
||||
and does not need EOL conversion by the win32text plugin.
|
||||
Before your next commit, please reconsider your encode/decode settings in
|
||||
Mercurial.ini or ..../.hg/hgrc.
|
||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
hello<NUL><CR><LF>
|
||||
some<CR><LF>text<CR><LF>
|
||||
rem empty<CR><LF>
|
||||
|
||||
# empty<CR><LF>
|
||||
# empty<LF>
|
||||
% just linefeed<LF>
|
||||
% just linefeed<LF>
|
||||
no changes needed to linefeed
|
||||
% just linefeed<LF>
|
||||
M linefeed
|
||||
reverting linefeed
|
||||
% just linefeed<CR><LF>
|
436
tests/test-win32text.t
Normal file
436
tests/test-win32text.t
Normal file
@ -0,0 +1,436 @@
|
||||
|
||||
$ 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
|
||||
[hooks]
|
||||
pretxncommit.crlf = python:hgext.win32text.forbidcrlf
|
||||
pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf
|
||||
$ echo
|
||||
|
||||
$ echo hello > f
|
||||
$ hg add f
|
||||
|
||||
commit should succeed
|
||||
|
||||
$ hg ci -m 1
|
||||
$ echo
|
||||
|
||||
$ hg clone . ../zoz
|
||||
updating to branch default
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ cp .hg/hgrc ../zoz/.hg
|
||||
$ python unix2dos.py f
|
||||
|
||||
commit should fail
|
||||
|
||||
$ hg ci -m 2.1
|
||||
Attempt to commit or push text file(s) using CRLF line endings
|
||||
in f583ea08d42a: f
|
||||
transaction abort!
|
||||
rollback completed
|
||||
abort: pretxncommit.crlf hook failed
|
||||
[255]
|
||||
$ echo
|
||||
|
||||
$ mv .hg/hgrc .hg/hgrc.bak
|
||||
|
||||
commits should succeed
|
||||
|
||||
$ hg ci -m 2
|
||||
$ hg cp f g
|
||||
$ hg ci -m 2.2
|
||||
$ echo
|
||||
|
||||
|
||||
push should fail
|
||||
|
||||
$ hg push ../zoz
|
||||
pushing to ../zoz
|
||||
searching for changes
|
||||
adding changesets
|
||||
adding manifests
|
||||
adding file changes
|
||||
added 2 changesets with 2 changes to 2 files
|
||||
Attempt to commit or push text file(s) using CRLF line endings
|
||||
in bc2d09796734: g
|
||||
in b1aa5cde7ff4: f
|
||||
|
||||
To prevent this mistake in your local repository,
|
||||
add to Mercurial.ini or .hg/hgrc:
|
||||
|
||||
[hooks]
|
||||
pretxncommit.crlf = python:hgext.win32text.forbidcrlf
|
||||
|
||||
and also consider adding:
|
||||
|
||||
[extensions]
|
||||
win32text =
|
||||
[encode]
|
||||
** = cleverencode:
|
||||
[decode]
|
||||
** = cleverdecode:
|
||||
transaction abort!
|
||||
rollback completed
|
||||
abort: pretxnchangegroup.crlf hook failed
|
||||
[255]
|
||||
$ echo
|
||||
|
||||
$ mv .hg/hgrc.bak .hg/hgrc
|
||||
$ echo hello > f
|
||||
$ hg rm g
|
||||
|
||||
commit should succeed
|
||||
|
||||
$ hg ci -m 2.3
|
||||
$ echo
|
||||
|
||||
|
||||
push should succeed
|
||||
|
||||
$ hg push ../zoz
|
||||
pushing to ../zoz
|
||||
searching for changes
|
||||
adding changesets
|
||||
adding manifests
|
||||
adding file changes
|
||||
added 3 changesets with 3 changes to 2 files
|
||||
$ 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
|
||||
Attempt to commit or push text file(s) using CRLF line endings
|
||||
in 053ba1a3035a: d/f2
|
||||
transaction abort!
|
||||
rollback completed
|
||||
abort: pretxncommit.crlf hook failed
|
||||
[255]
|
||||
$ hg revert -a
|
||||
forgetting d/f2
|
||||
$ 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
|
||||
changeset: 5:f0b1c8d75fce
|
||||
tag: tip
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: bin
|
||||
description:
|
||||
5
|
||||
|
||||
|
||||
changeset: 4:77796dbcd4ad
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
4
|
||||
|
||||
|
||||
changeset: 3:7c1b5430b350
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f g
|
||||
description:
|
||||
2.3
|
||||
|
||||
|
||||
changeset: 2:bc2d09796734
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: g
|
||||
description:
|
||||
2.2
|
||||
|
||||
|
||||
changeset: 1:b1aa5cde7ff4
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
2
|
||||
|
||||
|
||||
changeset: 0:fcf06d5c4e1d
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
1
|
||||
|
||||
|
||||
$ echo
|
||||
|
||||
$ hg clone . dupe
|
||||
updating to branch default
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ echo
|
||||
|
||||
$ for x in a b c d; do echo content > dupe/$x; done
|
||||
$ hg -R dupe add
|
||||
adding dupe/a
|
||||
adding dupe/b
|
||||
adding dupe/c
|
||||
adding dupe/d
|
||||
$ 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
|
||||
changeset: 8:67ac5962ab43
|
||||
tag: tip
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: d
|
||||
description:
|
||||
d
|
||||
|
||||
|
||||
changeset: 7:68c127d1834e
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: b c
|
||||
description:
|
||||
b/c
|
||||
|
||||
|
||||
changeset: 6:adbf8bf7f31d
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: a
|
||||
description:
|
||||
a
|
||||
|
||||
|
||||
changeset: 5:f0b1c8d75fce
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: bin
|
||||
description:
|
||||
5
|
||||
|
||||
|
||||
changeset: 4:77796dbcd4ad
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
4
|
||||
|
||||
|
||||
changeset: 3:7c1b5430b350
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f g
|
||||
description:
|
||||
2.3
|
||||
|
||||
|
||||
changeset: 2:bc2d09796734
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: g
|
||||
description:
|
||||
2.2
|
||||
|
||||
|
||||
changeset: 1:b1aa5cde7ff4
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
2
|
||||
|
||||
|
||||
changeset: 0:fcf06d5c4e1d
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
1
|
||||
|
||||
|
||||
$ echo
|
||||
|
||||
$ hg pull dupe
|
||||
pulling from dupe
|
||||
searching for changes
|
||||
adding changesets
|
||||
adding manifests
|
||||
adding file changes
|
||||
added 3 changesets with 4 changes to 4 files
|
||||
Attempt to commit or push text file(s) using CRLF line endings
|
||||
in 67ac5962ab43: d
|
||||
in 68c127d1834e: b
|
||||
in 68c127d1834e: c
|
||||
|
||||
To prevent this mistake in your local repository,
|
||||
add to Mercurial.ini or .hg/hgrc:
|
||||
|
||||
[hooks]
|
||||
pretxncommit.crlf = python:hgext.win32text.forbidcrlf
|
||||
|
||||
and also consider adding:
|
||||
|
||||
[extensions]
|
||||
win32text =
|
||||
[encode]
|
||||
** = cleverencode:
|
||||
[decode]
|
||||
** = cleverdecode:
|
||||
transaction abort!
|
||||
rollback completed
|
||||
abort: pretxnchangegroup.crlf hook failed
|
||||
[255]
|
||||
$ echo
|
||||
|
||||
$ hg log -v
|
||||
changeset: 5:f0b1c8d75fce
|
||||
tag: tip
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: bin
|
||||
description:
|
||||
5
|
||||
|
||||
|
||||
changeset: 4:77796dbcd4ad
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
4
|
||||
|
||||
|
||||
changeset: 3:7c1b5430b350
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f g
|
||||
description:
|
||||
2.3
|
||||
|
||||
|
||||
changeset: 2:bc2d09796734
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: g
|
||||
description:
|
||||
2.2
|
||||
|
||||
|
||||
changeset: 1:b1aa5cde7ff4
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
2
|
||||
|
||||
|
||||
changeset: 0:fcf06d5c4e1d
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
files: f
|
||||
description:
|
||||
1
|
||||
|
||||
|
||||
$ 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
|
||||
hello<NUL><CR><LF>
|
||||
$ python print.py < f3
|
||||
some<LF>text<LF>
|
||||
$ python print.py < f4.bat
|
||||
rem empty<CR><LF>
|
||||
$ 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
|
||||
[extensions]
|
||||
win32text =
|
||||
[decode]
|
||||
** = cleverdecode:
|
||||
[encode]
|
||||
** = cleverencode:
|
||||
$ 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(), "...."))'
|
||||
WARNING: f4.bat already has CRLF line endings
|
||||
and does not need EOL conversion by the win32text plugin.
|
||||
Before your next commit, please reconsider your encode/decode settings in
|
||||
Mercurial.ini or ..../.hg/hgrc.
|
||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ python print.py < bin
|
||||
hello<NUL><CR><LF>
|
||||
$ python print.py < f3
|
||||
some<CR><LF>text<CR><LF>
|
||||
$ python print.py < f4.bat
|
||||
rem empty<CR><LF>
|
||||
$ echo
|
||||
|
||||
$ python -c 'file("f5.sh", "wb").write("# empty\x0D\x0A")'
|
||||
$ hg add f5.sh
|
||||
$ hg ci -m 7
|
||||
$ python print.py < f5.sh
|
||||
# empty<CR><LF>
|
||||
$ hg cat f5.sh | python print.py
|
||||
# empty<LF>
|
||||
$ echo '% just linefeed' > linefeed
|
||||
$ hg ci -qAm 8 linefeed
|
||||
$ python print.py < linefeed
|
||||
% just linefeed<LF>
|
||||
$ hg cat linefeed | python print.py
|
||||
% just linefeed<LF>
|
||||
$ hg st -q
|
||||
$ hg revert -a linefeed
|
||||
no changes needed to linefeed
|
||||
$ python print.py < linefeed
|
||||
% just linefeed<LF>
|
||||
$ hg st -q
|
||||
$ echo modified >> linefeed
|
||||
$ hg st -q
|
||||
M linefeed
|
||||
$ hg revert -a
|
||||
reverting linefeed
|
||||
$ hg st -q
|
||||
$ python print.py < linefeed
|
||||
% just linefeed<CR><LF>
|
Loading…
Reference in New Issue
Block a user