tests/revnamesext.py
author Pulkit Goyal <7895pulkit@gmail.com>
Tue, 02 Mar 2021 00:02:25 +0530
changeset 46656 9a31f65381ae
parent 43076 2372284d9457
child 48875 6000f5b25c9b
permissions -rw-r--r--
tags: validate nodes in _getfnodes() and update cache in case of unknown nodes `hgtagsfnodescache` can contain unknown nodes due to cache corruption and this lead to a traceback on operations like `hg tags` as we don't validate nodes. This patch validates that all filenodes returned after `hgtagsfnodescache` are known to the repository. If there exists any unknown filenode, we force recompute it and update the cache. The test change demonstrates the fix. Differential Revision: https://phab.mercurial-scm.org/D10083
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
from __future__ import absolute_import
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     4
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
     5
from mercurial import namespaces
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
     6
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     7
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     8
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
     9
    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
    10
    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
    11
    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
    12
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    13
    ns = namespaces.namespace(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    14
        b'revnames',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    15
        templatename=b'revname',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    16
        logname=b'revname',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    17
        listnames=lambda r: names.keys(),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    18
        namemap=namemap,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    19
        nodemap=nodemap,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36548
diff changeset
    20
    )
33048
46fa46608ca5 namespaces: record and expose whether namespace is built-in
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    21
    repo.names.addnamespace(ns)