diff -r 4fb4fc331699 -r bb3281b3fcaa mercurial/manifest.py --- a/mercurial/manifest.py Wed Aug 31 13:29:49 2016 -0700 +++ b/mercurial/manifest.py Mon Aug 29 18:02:09 2016 -0700 @@ -1130,7 +1130,11 @@ if node == revlog.nullid: return self._newmanifest() # don't upset local cache if node in self._mancache: - return self._mancache[node] + cached = self._mancache[node] + if (isinstance(cached, manifestctx) or + isinstance(cached, treemanifestctx)): + cached = cached.read() + return cached if self._treeondisk: def gettext(): return self.revision(node)