##// END OF EJS Templates
revlog: subclass the new `repository.iverifyproblem` Protocol class...
revlog: subclass the new `repository.iverifyproblem` Protocol class This is the same transformation as 3a90a6fd710d did for dirstate, but the CamelCase naming was already cleaned up here. We shouldn't have to explicitly subclass, but I'm doing so to test the interplay of regular attributes and the `attrs` class. Also, PyCharm has a nifty feature that puts a jump point in the gutter to navigate back and forth between the base class and subclasses (and override functions and base class functions) when there's an explicit subclassing. Additionally, PyCharm will immediately flag signature mismatches without a 40m pytype run.

File last commit:

r49211:f5dea753 default
r53365:4ef6dbc2 default
Show More
test-win32text.t
424 lines | 8.2 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: unify test-win32text
r12494
$ hg init t
$ cd t
$ cat > unix2dos.py <<EOF
> import sys
>
> for path in sys.argv[1:]:
Pulkit Goyal
py3: replace file() with open() in test-win32text.t...
r36031 > data = open(path, 'rb').read()
> data = data.replace(b'\n', b'\r\n')
> open(path, 'wb').write(data)
Matt Mackall
tests: unify test-win32text
r12494 > 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
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-win32text
r12494 $ echo hello > f
$ hg add f
commit should succeed
$ hg ci -m 1
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-win32text
r12494 $ hg clone . ../zoz
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cp .hg/hgrc ../zoz/.hg
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" unix2dos.py f
Matt Mackall
tests: unify test-win32text
r12494
commit should fail
$ hg ci -m 2.1
Martin Geisler
win32text: lowercase warning message
r16932 attempt to commit or push text file(s) using CRLF line endings
Matt Mackall
tests: unify test-win32text
r12494 in f583ea08d42a: f
transaction abort!
rollback completed
abort: pretxncommit.crlf hook failed
Martin von Zweigbergk
errors: use exit code 40 for when a hook fails...
r47145 [40]
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-win32text
r12494 $ mv .hg/hgrc .hg/hgrc.bak
commits should succeed
$ hg ci -m 2
$ hg cp f g
$ hg ci -m 2.2
push should fail
$ hg push ../zoz
pushing to ../zoz
searching for changes
adding changesets
adding manifests
adding file changes
Martin Geisler
win32text: lowercase warning message
r16932 attempt to commit or push text file(s) using CRLF line endings
Matt Mackall
tests: unify test-win32text
r12494 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
Martin von Zweigbergk
errors: use exit code 40 for when a hook fails...
r47145 [40]
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-win32text
r12494 $ mv .hg/hgrc.bak .hg/hgrc
$ echo hello > f
$ hg rm g
commit should succeed
$ hg ci -m 2.3
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
and now for something completely different
$ mkdir d
$ echo hello > d/f2
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" unix2dos.py d/f2
Matt Mackall
tests: unify test-win32text
r12494 $ hg add d/f2
$ hg ci -m 3
Martin Geisler
win32text: lowercase warning message
r16932 attempt to commit or push text file(s) using CRLF line endings
Matt Mackall
tests: unify test-win32text
r12494 in 053ba1a3035a: d/f2
transaction abort!
rollback completed
abort: pretxncommit.crlf hook failed
Martin von Zweigbergk
errors: use exit code 40 for when a hook fails...
r47145 [40]
Matt Mackall
tests: unify test-win32text
r12494 $ hg revert -a
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 forgetting d/f2
Matt Mackall
tests: unify test-win32text
r12494 $ rm d/f2
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-win32text
r12494 $ hg rem f
$ hg ci -m 4
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" -c 'open("bin", "wb").write(b"hello\x00\x0D\x0A")'
Matt Mackall
tests: unify test-win32text
r12494 $ 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
$ hg clone . dupe
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-win32text
r12494 $ for x in a b c d; do echo content > dupe/$x; done
$ hg -R dupe add
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding dupe/a
adding dupe/b
adding dupe/c
adding dupe/d
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" unix2dos.py dupe/b dupe/c dupe/d
Matt Mackall
tests: unify test-win32text
r12494 $ 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
$ hg pull dupe
pulling from dupe
searching for changes
adding changesets
adding manifests
adding file changes
Martin Geisler
win32text: lowercase warning message
r16932 attempt to commit or push text file(s) using CRLF line endings
Matt Mackall
tests: unify test-win32text
r12494 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
Martin von Zweigbergk
errors: use exit code 40 for when a hook fails...
r47145 [40]
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-win32text
r12494 $ 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
$ rm .hg/hgrc
$ (echo some; echo text) > f3
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" -c 'open("f4.bat", "wb").write(b"rem empty\x0D\x0A")'
Matt Mackall
tests: unify test-win32text
r12494 $ hg add f3 f4.bat
$ hg ci -m 6
Martin Geisler
test-win32text: use (esc) lines instead of Python script
r12977 $ cat bin
hello\x00\r (esc)
$ cat f3
some
text
$ cat f4.bat
rem empty\r (esc)
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Mackall
tests: unify test-win32text
r12494 $ 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:
Martin Geisler
tests: test/silence win32text deprecation warning
r12843
Trigger deprecation warning:
Mads Kiilerich
test-win32text.t: stabilize test output...
r12853 $ hg id -t
Matt Mackall
urls: bulk-change primary website URLs
r26421 win32text is deprecated: https://mercurial-scm.org/wiki/Win32TextExtension
Mads Kiilerich
test-win32text.t: stabilize test output...
r12853 tip
Martin Geisler
tests: test/silence win32text deprecation warning
r12843
Disable warning:
$ echo '[win32text]' >> .hg/hgrc
$ echo 'warn = no' >> .hg/hgrc
Mads Kiilerich
test-win32text.t: stabilize test output...
r12853 $ hg id -t
tip
Martin Geisler
tests: test/silence win32text deprecation warning
r12843
Matt Mackall
tests: unify test-win32text
r12494 $ rm f3 f4.bat bin
Martin Geisler
test-win32text: use $TESTTMP in output
r12978 $ hg co -C
Matt Mackall
tests: unify test-win32text
r12494 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
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 Mercurial.ini or $TESTTMP/t/.hg/hgrc.
Matt Mackall
tests: unify test-win32text
r12494 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Martin Geisler
test-win32text: use (esc) lines instead of Python script
r12977 $ cat bin
hello\x00\r (esc)
$ cat f3
some\r (esc)
text\r (esc)
$ cat f4.bat
rem empty\r (esc)
Mads Kiilerich
tests: cleanup of echo statements left over from test conversion
r15243
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" -c 'open("f5.sh", "wb").write(b"# empty\x0D\x0A")'
Matt Mackall
tests: unify test-win32text
r12494 $ hg add f5.sh
$ hg ci -m 7
Martin Geisler
test-win32text: use (esc) lines instead of Python script
r12977 $ cat f5.sh
# empty\r (esc)
$ hg cat f5.sh
# empty
Matt Mackall
tests: unify test-win32text
r12494 $ echo '% just linefeed' > linefeed
$ hg ci -qAm 8 linefeed
Martin Geisler
test-win32text: use (esc) lines instead of Python script
r12977 $ cat linefeed
% just linefeed
$ hg cat linefeed
% just linefeed
Matt Mackall
tests: unify test-win32text
r12494 $ hg st -q
$ hg revert -a linefeed
no changes needed to linefeed
Martin Geisler
test-win32text: use (esc) lines instead of Python script
r12977 $ cat linefeed
% just linefeed
Matt Mackall
tests: unify test-win32text
r12494 $ hg st -q
$ echo modified >> linefeed
$ hg st -q
M linefeed
$ hg revert -a
reverting linefeed
$ hg st -q
Martin Geisler
test-win32text: use (esc) lines instead of Python script
r12977 $ cat linefeed
% just linefeed\r (esc)
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..