--- a/mercurial/scmutil.py Wed Dec 11 15:06:09 2019 -0800
+++ b/mercurial/scmutil.py Wed Dec 11 17:35:29 2019 +0100
@@ -545,12 +545,10 @@
if cache is not None:
nodetree = cache.get(b'disambiguationnodetree')
if not nodetree:
- try:
+ if util.safehasattr(parsers, 'nodetree'):
+ # The CExt is the only implementation to provide a nodetree
+ # class so far.
nodetree = parsers.nodetree(cl.index, len(revs))
- except AttributeError:
- # no native nodetree
- pass
- else:
for r in revs:
nodetree.insert(r)
if cache is not None: