perf: make `perfphasesremote` use the new `index.has_node` api
authorPierre-Yves David <pierre-yves.david@octobus.net>
Fri, 08 Nov 2019 13:26:55 +0100
changeset 43551 3350d7aefe67
parent 43550 a936a3455bb1
child 43552 bd87114ce341
perf: make `perfphasesremote` use the new `index.has_node` api (If available) Differential Revision: https://phab.mercurial-scm.org/D7359
contrib/perf.py
--- a/contrib/perf.py	Fri Nov 08 17:08:24 2019 +0100
+++ b/contrib/perf.py	Fri Nov 08 13:26:55 2019 +0100
@@ -1421,13 +1421,15 @@
     else:
         ui.statusnoi18n(b'publishing: no\n')
 
-    nodemap = repo.changelog.nodemap
+    has_node = getattr(repo.changelog.index, 'has_node', None)
+    if has_node is None:
+        has_node = repo.changelog.nodemap.__contains__
     nonpublishroots = 0
     for nhex, phase in remotephases.iteritems():
         if nhex == b'publishing':  # ignore data related to publish option
             continue
         node = bin(nhex)
-        if node in nodemap and int(phase):
+        if has_node(node) and int(phase):
             nonpublishroots += 1
     ui.statusnoi18n(b'number of roots: %d\n' % len(remotephases))
     ui.statusnoi18n(b'number of known non public roots: %d\n' % nonpublishroots)