tests/revnamesext.py
author Arseniy Alekseyev <aalekseyev@janestreet.com>
Thu, 21 Dec 2023 20:30:03 +0000
changeset 51396 3f37d80d3ab4
parent 48875 6000f5b25c9b
permissions -rw-r--r--
revlog: add a C implementation of `headrevsdiff` Python implementation of `headrevsdiff` can be very slow in the worst case compared with the `heads` computation it replaces, since the latter is done in C. Even the average case of this Python implementation is still noticeable in the profiles. This patch makes the computation much much faster by doing it in C.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     1
# Dummy extension to define a namespace containing revision names
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     2
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     3
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
     4
from mercurial import namespaces
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
     5
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     6
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     7
def reposetup(ui, repo):
36548
086fc71fbb09 py3: mark all string literals in test-command-template.t as bytes
Yuya Nishihara <yuya@tcha.org>
parents: 33048
diff changeset
     8
    names = {b'r%d' % rev: repo[rev].node() for rev in repo}
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     9
    namemap = lambda r, name: names.get(name)
36548
086fc71fbb09 py3: mark all string literals in test-command-template.t as bytes
Yuya Nishihara <yuya@tcha.org>
parents: 33048
diff changeset
    10
    nodemap = lambda r, node: [b'r%d' % repo[node].rev()]
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    11
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    12
    ns = namespaces.namespace(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    13
        b'revnames',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    14
        templatename=b'revname',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    15
        logname=b'revname',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    16
        listnames=lambda r: names.keys(),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    17
        namemap=namemap,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    18
        nodemap=nodemap,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    19
    )
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    20
    repo.names.addnamespace(ns)