diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -415,10 +415,6 @@ class changectx(basectx): except KeyError: pass - if changeid in repo._tagscache.tags: - self._node = repo._tagscache.tags[changeid] - self._rev = repo.changelog.rev(self._node) - return try: self._node = repo.branchtip(changeid) self._rev = repo.changelog.rev(self._node) diff --git a/mercurial/namespaces.py b/mercurial/namespaces.py --- a/mercurial/namespaces.py +++ b/mercurial/namespaces.py @@ -34,10 +34,15 @@ class namespaces(object): def __init__(self): self._names = util.sortdict() + addns = self.addnamespace + # we need current mercurial named objects (bookmarks, tags, and # branches) to be initialized somewhere, so that place is here - self.addnamespace("bookmarks", - lambda repo, name: tolist(repo._bookmarks.get(name))) + addns("bookmarks", + lambda repo, name: tolist(repo._bookmarks.get(name))) + + addns("tags", + lambda repo, name: tolist(repo._tagscache.tags.get(name))) def addnamespace(self, namespace, namemap, order=None): """