manifest: use rev() instead of nodemap.__contains__
nodemap is an implementation detail of revlogs and isn't
appropriate to expose on the manifest storage API.
While revlogs don't have a __contains__, they do have lookup()
for resolving a value to a node. And this calls rev(), whose API
is documented to raise LookupError if a node doesn't exist. And
the parameters to LookupError are identical to what was being
raised here. So this change should be backwards compatible.
Differential Revision: https://phab.mercurial-scm.org/D4279
--- a/mercurial/manifest.py Fri Aug 10 15:06:41 2018 -0700
+++ b/mercurial/manifest.py Fri Aug 10 16:01:19 2018 -0700
@@ -1453,10 +1453,10 @@
if tree:
if self._revlog._treeondisk:
if verify:
- dirlog = self.getstorage(tree)
- if node not in dirlog.nodemap:
- raise LookupError(node, dirlog.indexfile,
- _('no node'))
+ # Side-effect is LookupError is raised if node doesn't
+ # exist.
+ self.getstorage(tree).rev(node)
+
m = treemanifestctx(self, tree, node)
else:
raise error.Abort(
@@ -1464,9 +1464,9 @@
"manifest") % tree)
else:
if verify:
- if node not in self._revlog.nodemap:
- raise LookupError(node, self._revlog.indexfile,
- _('no node'))
+ # Side-effect is LookupError is raised if node doesn't exist.
+ self._revlog.rev(node)
+
if self._treemanifests:
m = treemanifestctx(self, '', node)
else: