Mercurial > hg
annotate tests/test-log-exthook.t @ 41247:a89b20a49c13
rust-cpython: using MissingAncestors from Python code
As precedently done with LazyAncestors on cpython.rs, we test for the
presence of the 'rustext' module.
incrementalmissingrevs() has two callers within the Mercurial core:
`setdiscovery.partialdiscovery` and the `only()` revset.
This move shows a significant discovery performance improvement
in cases where the baseline is slow: using perfdiscovery on the PyPy
repos, prepared with `contrib/discovery-helper <repo> 50 100`, we
get averaged medians of 403ms with the Rust version vs 742ms without
(about 45% better).
But there are still indications that performance can be worse in cases
the baseline is fast, possibly due to the conversion from Python to
Rust and back becoming the bottleneck. We could measure this on
mozilla-central in cases were the delta is just a few changesets.
This requires confirmation, but if that's the reason, then an
upcoming `partialdiscovery` fully in Rust should solve the problem.
Differential Revision: https://phab.mercurial-scm.org/D5551
author | Georges Racinet <georges.racinet@octobus.net> |
---|---|
date | Fri, 30 Nov 2018 14:35:57 +0100 |
parents | 005bc856e919 |
children | 42d2b31cee0b |
rev | line source |
---|---|
33154
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
1 Test hg log changeset printer external hook |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
2 ------------------------------------------- |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
3 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
4 $ cat > $TESTTMP/logexthook.py <<EOF |
33964
bfafd189edd9
tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33154
diff
changeset
|
5 > from __future__ import absolute_import |
39657
2b9f315a4217
py3: use codecs.encode() to encode in rot-13 encoding
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
35888
diff
changeset
|
6 > import codecs |
33964
bfafd189edd9
tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33154
diff
changeset
|
7 > from mercurial import ( |
bfafd189edd9
tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33154
diff
changeset
|
8 > commands, |
35888
c8e2d6ed1f9e
cmdutil: drop aliases for logcmdutil functions (API)
Yuya Nishihara <yuya@tcha.org>
parents:
33964
diff
changeset
|
9 > logcmdutil, |
33964
bfafd189edd9
tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33154
diff
changeset
|
10 > repair, |
bfafd189edd9
tests: update test-log-exthook to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33154
diff
changeset
|
11 > ) |
40441
005bc856e919
py3: port test-log-exthook.t to Python 3
Augie Fackler <augie@google.com>
parents:
39657
diff
changeset
|
12 > def brot13(b): |
005bc856e919
py3: port test-log-exthook.t to Python 3
Augie Fackler <augie@google.com>
parents:
39657
diff
changeset
|
13 > return codecs.encode(b.decode('utf8'), 'rot-13').encode('utf8') |
33154
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
14 > def rot13description(self, ctx): |
40441
005bc856e919
py3: port test-log-exthook.t to Python 3
Augie Fackler <augie@google.com>
parents:
39657
diff
changeset
|
15 > description = ctx.description().strip().splitlines()[0] |
005bc856e919
py3: port test-log-exthook.t to Python 3
Augie Fackler <augie@google.com>
parents:
39657
diff
changeset
|
16 > self.ui.write(b"%s: %s\n" % (brot13(b"summary"), |
005bc856e919
py3: port test-log-exthook.t to Python 3
Augie Fackler <augie@google.com>
parents:
39657
diff
changeset
|
17 > brot13(description))) |
33154
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
18 > def reposetup(ui, repo): |
35888
c8e2d6ed1f9e
cmdutil: drop aliases for logcmdutil functions (API)
Yuya Nishihara <yuya@tcha.org>
parents:
33964
diff
changeset
|
19 > logcmdutil.changesetprinter._exthook = rot13description |
33154
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
20 > EOF |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
21 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
22 Prepare the repository |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
23 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
24 $ hg init empty |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
25 $ cd empty |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
26 $ touch ROOT |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
27 $ hg commit -A -m "Root" ROOT |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
28 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
29 $ touch a b c |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
30 $ hg commit -A -m "Add A, B, C" a b c |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
31 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
32 Check the log |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
33 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
34 $ hg log --config extensions.t=$TESTTMP/logexthook.py |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
35 changeset: 1:70fc82b23320 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
36 tag: tip |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
37 user: test |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
38 date: Thu Jan 01 00:00:00 1970 +0000 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
39 fhzznel: Nqq N, O, P |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
40 summary: Add A, B, C |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
41 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
42 changeset: 0:b00443a54871 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
43 user: test |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
44 date: Thu Jan 01 00:00:00 1970 +0000 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
45 fhzznel: Ebbg |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
46 summary: Root |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
47 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
48 Check that exthook is working with graph log too |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
49 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
50 $ hg log -G --config extensions.t=$TESTTMP/logexthook.py |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
51 @ changeset: 1:70fc82b23320 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
52 | tag: tip |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
53 | user: test |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
54 | date: Thu Jan 01 00:00:00 1970 +0000 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
55 | fhzznel: Nqq N, O, P |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
56 | summary: Add A, B, C |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
57 | |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
58 o changeset: 0:b00443a54871 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
59 user: test |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
60 date: Thu Jan 01 00:00:00 1970 +0000 |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
61 fhzznel: Ebbg |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
62 summary: Root |
4ecc6047d45f
log: add an extension hook-point in changeset_printer
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
63 |