Mercurial > hg
annotate tests/blackbox-readonly-dispatch.py @ 40745:300f8564220f
tags: cache `repo.changelog` access when checking tags nodes
The tags reading process checks if the nodes referenced in tags exist. Caching
the access to `repo.changelog` provides a large speedup for repositories with
many tags.
running `hg perftags` in a large private repository
before: ! wall 0.393464 comb 0.390000 user 0.330000 sys 0.060000 (median of 25)
after: ! wall 0.267711 comb 0.270000 user 0.210000 sys 0.060000 (median of 38)
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Tue, 20 Nov 2018 10:38:15 +0000 |
parents | c93d046d4300 |
children | 2372284d9457 |
rev | line source |
---|---|
36738
70a98c3fba2a
py3: make blackbox-readonly-dispatch.py use ui instead of print()
Yuya Nishihara <yuya@tcha.org>
parents:
35724
diff
changeset
|
1 from __future__ import absolute_import |
5095
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
2 import os |
28404
06245740b408
tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org>
parents:
14438
diff
changeset
|
3 from mercurial import ( |
06245740b408
tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org>
parents:
14438
diff
changeset
|
4 dispatch, |
40729
c93d046d4300
extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents:
36739
diff
changeset
|
5 extensions, |
36738
70a98c3fba2a
py3: make blackbox-readonly-dispatch.py use ui instead of print()
Yuya Nishihara <yuya@tcha.org>
parents:
35724
diff
changeset
|
6 ui as uimod, |
28404
06245740b408
tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org>
parents:
14438
diff
changeset
|
7 ) |
5095
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
8 |
5178
18a9fbb5cd78
dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents:
5095
diff
changeset
|
9 def testdispatch(cmd): |
18a9fbb5cd78
dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents:
5095
diff
changeset
|
10 """Simple wrapper around dispatch.dispatch() |
5095
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
11 |
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
12 Prints command and result value, but does not handle quoting. |
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
13 """ |
36738
70a98c3fba2a
py3: make blackbox-readonly-dispatch.py use ui instead of print()
Yuya Nishihara <yuya@tcha.org>
parents:
35724
diff
changeset
|
14 ui = uimod.ui.load() |
40729
c93d046d4300
extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents:
36739
diff
changeset
|
15 extensions.populateui(ui) |
36739
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
16 ui.status(b"running: %s\n" % cmd) |
36738
70a98c3fba2a
py3: make blackbox-readonly-dispatch.py use ui instead of print()
Yuya Nishihara <yuya@tcha.org>
parents:
35724
diff
changeset
|
17 req = dispatch.request(cmd.split(), ui) |
14438
08bfec2ef031
dispatch: wrap dispatch related information in a request class
Idan Kamara <idankk86@gmail.com>
parents:
9031
diff
changeset
|
18 result = dispatch.dispatch(req) |
36739
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
19 ui.status(b"result: %r\n" % result) |
5095
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
20 |
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
21 # create file 'foo', add and commit |
36739
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
22 f = open(b'foo', 'wb') |
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
23 f.write(b'foo\n') |
5095
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
24 f.close() |
36739
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
25 testdispatch(b"--debug add foo") |
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
26 testdispatch(b"--debug commit -m commit1 -d 2000-01-01 foo") |
5095
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
27 |
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
28 # append to file 'foo' and commit |
36739
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
29 f = open(b'foo', 'ab') |
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
30 f.write(b'bar\n') |
5095
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
31 f.close() |
28406
0767c2f624c6
tests: divorce blackbox test from test-dispatch.py
timeless <timeless@mozdev.org>
parents:
28405
diff
changeset
|
32 # remove blackbox.log directory (proxy for readonly log file) |
36739
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
33 os.rmdir(b".hg/blackbox.log") |
28406
0767c2f624c6
tests: divorce blackbox test from test-dispatch.py
timeless <timeless@mozdev.org>
parents:
28405
diff
changeset
|
34 # replace it with the real blackbox.log file |
36739
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
35 os.rename(b".hg/blackbox.log-", b".hg/blackbox.log") |
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
36 testdispatch(b"--debug commit -m commit2 -d 2000-01-02 foo") |
5095
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
37 |
f3f033def181
Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff
changeset
|
38 # check 88803a69b24 (fancyopts modified command table) |
36739
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
39 testdispatch(b"--debug log -r 0") |
f4a508f4ea87
py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents:
36738
diff
changeset
|
40 testdispatch(b"--debug log -r tip") |