Mercurial > hg
annotate tests/test-check-code.t @ 46254:c4b792fa109e
branchmap: avoid ancestor computations in absence of non-continous branches
The branchhead computation is one of the more heavy operations for
bigger repositories as it has to scan all changesets and potentially
involves the expensive computation of the ancestor sets. Redo the
computation to handle the common cases directly and use tighter
conditions for when the ancestor scan is necessary. Most importantly,
avoid it completely if the non-continous branches are processed in one
update as seen in the initial computation after a clone.
For the Mercurial repository, it gives a small 2-3% performance boost.
For the NetBSD test repository, it cuts the time in half.
Differential Revision: https://phab.mercurial-scm.org/D9631
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Fri, 18 Dec 2020 14:45:28 +0100 |
parents | eff26a0f664f |
children | e92ca942ddca |
rev | line source |
---|---|
27368
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
1 #require test-repo |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
2 |
29219
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
28529
diff
changeset
|
3 $ . "$TESTDIR/helpers-testrepo.sh" |
27368
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
4 $ check_code="$TESTDIR"/../contrib/check-code.py |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
5 $ cd "$TESTDIR"/.. |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
6 |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
7 New errors are not allowed. Warnings are strongly discouraged. |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
8 (The writing "no-che?k-code" is for not skipping this file when checking.) |
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
9 |
34395
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
10 $ testrepohg locate \ |
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
11 > -X contrib/python-zstandard \ |
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
12 > -X hgext/fsmonitor/pywatchman \ |
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
13 > -X mercurial/thirdparty \ |
41401f502c83
tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents:
33583
diff
changeset
|
14 > | sed 's-\\-/-g' | "$check_code" --warnings --per-file=0 - || false |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
15 Skipping contrib/automation/hgautomation/__init__.py it has no-che?k-code (glob) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
16 Skipping contrib/automation/hgautomation/aws.py it has no-che?k-code (glob) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
17 Skipping contrib/automation/hgautomation/cli.py it has no-che?k-code (glob) |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42024
diff
changeset
|
18 Skipping contrib/automation/hgautomation/linux.py it has no-che?k-code (glob) |
42907
92593d72e10b
automation: implement "publish-windows-artifacts" command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42285
diff
changeset
|
19 Skipping contrib/automation/hgautomation/pypi.py it has no-che?k-code (glob) |
42285
65b3ef162b39
automation: initial support for running Linux tests
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42024
diff
changeset
|
20 Skipping contrib/automation/hgautomation/ssh.py it has no-che?k-code (glob) |
43057
c5c502bd1f70
automation: add a command to submit to a Try server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
42907
diff
changeset
|
21 Skipping contrib/automation/hgautomation/try_server.py it has no-che?k-code (glob) |
42024
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
22 Skipping contrib/automation/hgautomation/windows.py it has no-che?k-code (glob) |
b05a3e28cf24
automation: perform tasks on remote machines
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41921
diff
changeset
|
23 Skipping contrib/automation/hgautomation/winrm.py it has no-che?k-code (glob) |
43813
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43693
diff
changeset
|
24 Skipping contrib/fuzz/FuzzedDataProvider.h it has no-che?k-code (glob) |
5a9e2ae9899b
fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com>
parents:
43693
diff
changeset
|
25 Skipping contrib/fuzz/standalone_fuzz_target_runner.cc it has no-che?k-code (glob) |
43513
081a77df7bc6
packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43348
diff
changeset
|
26 Skipping contrib/packaging/hgpackaging/cli.py it has no-che?k-code (glob) |
41908
c2237fe1359e
packaging: split downloading code into own module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41907
diff
changeset
|
27 Skipping contrib/packaging/hgpackaging/downloads.py it has no-che?k-code (glob) |
41911
dc7827a9ba64
packaging: move Inno Setup core logic into a module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41908
diff
changeset
|
28 Skipping contrib/packaging/hgpackaging/inno.py it has no-che?k-code (glob) |
41915
a2e191a937a9
packaging: extract py2exe functionality to own module
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41911
diff
changeset
|
29 Skipping contrib/packaging/hgpackaging/py2exe.py it has no-che?k-code (glob) |
44763
94f4f2ec7dee
packaging: support building Inno installer with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43813
diff
changeset
|
30 Skipping contrib/packaging/hgpackaging/pyoxidizer.py it has no-che?k-code (glob) |
41907
9da97f49d4f4
packaging: establish hgpackaging package
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41853
diff
changeset
|
31 Skipping contrib/packaging/hgpackaging/util.py it has no-che?k-code (glob) |
41921
4371f543efda
wix: functionality to automate building WiX installers
Gregory Szorc <gregory.szorc@gmail.com>
parents:
41915
diff
changeset
|
32 Skipping contrib/packaging/hgpackaging/wix.py it has no-che?k-code (glob) |
27368
409a20314c64
tests: move the '-hg' postfix for all style tests
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
33 Skipping i18n/polib.py it has no-che?k-code (glob) |
30253
b032a7b676c6
statprof: vendor statprof.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29442
diff
changeset
|
34 Skipping mercurial/statprof.py it has no-che?k-code (glob) |
32001
c85f19c66e8d
tests: add tests for poorly behaving HTTP server
Gregory Szorc <gregory.szorc@gmail.com>
parents:
31990
diff
changeset
|
35 Skipping tests/badserverext.py it has no-che?k-code (glob) |
30540
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
36 |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
37 @commands in debugcommands.py should be in alphabetical order. |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
38 |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
39 >>> import re |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
40 >>> commands = [] |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
41 >>> with open('mercurial/debugcommands.py', 'rb') as fh: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
42 ... for line in fh: |
41547
f16c03c7a3d7
tests: use raw string in test-check-code.t
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40163
diff
changeset
|
43 ... m = re.match(br"^@command\('([a-z]+)", line) |
30540
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
44 ... if m: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
45 ... commands.append(m.group(1)) |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
46 >>> scommands = list(sorted(commands)) |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
47 >>> for i, command in enumerate(scommands): |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
48 ... if command != commands[i]: |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
49 ... print('commands in debugcommands.py not sorted; first differing ' |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
50 ... 'command is %s; expected %s' % (commands[i], command)) |
d955cebd8d6a
tests: add test that @commands in debugcommands.py are sorted
Gregory Szorc <gregory.szorc@gmail.com>
parents:
30435
diff
changeset
|
51 ... break |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
52 |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
53 Prevent adding new files in the root directory accidentally. |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
54 |
33204
ddd65b4f3ae6
tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents:
33116
diff
changeset
|
55 $ testrepohg files 'glob:*' |
33583
b2c27d84f05c
phabricator: include the suggested arc config in the repo
Alex Gaynor <agaynor@mozilla.com>
parents:
33502
diff
changeset
|
56 .arcconfig |
34798
e33381d95930
clang-format: configuration for the clang-format source formatter
Augie Fackler <raf@durin42.com>
parents:
34579
diff
changeset
|
57 .clang-format |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
58 .editorconfig |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
59 .hgignore |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
60 .hgsigs |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
61 .hgtags |
35162
bdd2e18b54c5
hgweb: add .jshintrc with some basic rules
Anton Shestakov <av6@dwimlabs.net>
parents:
34798
diff
changeset
|
62 .jshintrc |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
63 CONTRIBUTING |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
64 CONTRIBUTORS |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
65 COPYING |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
66 Makefile |
34579
1b59287a1cfa
doc: rename README to README.rst
David Demelier <markand@malikania.fr>
parents:
34395
diff
changeset
|
67 README.rst |
43222
8f89899a5446
black: rename pyproject.toml to black.toml
Augie Fackler <augie@google.com>
parents:
43083
diff
changeset
|
68 black.toml |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
69 hg |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
70 hgeditor |
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
71 hgweb.cgi |
45620
426294d06ddc
rust: move rustfmt.toml to repo root so it can be used by `hg fix`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44763
diff
changeset
|
72 rustfmt.toml |
31726
bdb72dd3957e
test-check-code: prevent files being added to the root directory
Jun Wu <quark@fb.com>
parents:
31724
diff
changeset
|
73 setup.py |
37804
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
74 |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
75 Prevent adding modules which could be shadowed by ancient .so/.dylib. |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
76 |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
77 $ testrepohg files \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
78 > mercurial/base85.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
79 > mercurial/bdiff.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
80 > mercurial/diffhelpers.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
81 > mercurial/mpatch.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
82 > mercurial/osutil.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
83 > mercurial/parsers.py \ |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
84 > mercurial/zstd.py |
1ec874717d8a
test-check-code: prevent from adding Python modules shadowed by ancient C
Yuya Nishihara <yuya@tcha.org>
parents:
36426
diff
changeset
|
85 [1] |
40163
9f0ee4a60d65
tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents:
39057
diff
changeset
|
86 |
9f0ee4a60d65
tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents:
39057
diff
changeset
|
87 Keep python3 tests sorted: |
9f0ee4a60d65
tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents:
39057
diff
changeset
|
88 $ sort < contrib/python3-whitelist > $TESTTMP/py3sorted |
9f0ee4a60d65
tests: ensure the python 3 passing test list stays sorted
Augie Fackler <augie@google.com>
parents:
39057
diff
changeset
|
89 $ cmp contrib/python3-whitelist $TESTTMP/py3sorted || echo 'Please sort passing tests!' |
43693
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
90 |
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
91 Keep Windows line endings in check |
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
92 |
45934
eff26a0f664f
tests: use `testrepohg` in one more place in test-check-code.t
Matt Harbison <matt_harbison@yahoo.com>
parents:
45620
diff
changeset
|
93 $ testrepohg files 'set:eol(dos)' |
43693
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
94 contrib/win32/hg.bat |
f0b33e5f0cf4
tests: check for Windows line endings
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43513
diff
changeset
|
95 contrib/win32/mercurial.ini |