##// END OF EJS Templates
changegroup: move message about added changes to transaction summary...
changegroup: move message about added changes to transaction summary Before that, applying multiple changegroups in the same transaction issued the message multiple time. This result in a confusing output: adding changesets adding manifests adding file changes added 32768 changesets with 60829 changes to 2668 files adding changesets adding manifests adding file changes added 8192 changesets with 16885 changes to 1553 files adding changesets adding manifests adding file changes added 1020 changesets with 1799 changes to 536 files adding changesets adding manifests ... Instead, we now only issue the message once at the end of the transaction, summing up all added changesets, changes and files. The line is identical, but happens sightly later in the output. There are other suboptimal behavior around issue multiple changegroup (eg: progress bar). We'll cover them later. This impact of lot of test as one would expect, but a two pass check show they are just the order change we expected. To deal with "under the hood" bundle application by internal code, we had to take a slightly hacky move. We could clean that up with a more official way to enter "under the hood" section, however I want to keep this series simple to get it landed. This kind of change have a very high bit rot rate since it impact a lot of test output.

File last commit:

r43167:d7304434 default
r43167:d7304434 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
[255]
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
[255]
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
[255]
$ 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
[255]
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 ..