# HG changeset patch # User Gregory Szorc # Date 2018-08-10 23:01:19 # Node ID 61700d525a3b190bb2bcfc36b5cba96c67dfcb0f # Parent 071f97d03acb73e25ee75dcb196e56dd8e647ec1 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 diff --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -1453,10 +1453,10 @@ class manifestlog(object): 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 @@ class manifestlog(object): "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: