diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -114,6 +114,8 @@ class changectx(object): return self._changeset[5] def tags(self): return self._repo.nodetags(self._node) + def bookmarks(self): + return self._repo.nodebookmarks(self._node) def parents(self): """return contexts for each parent changeset""" diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -399,6 +399,13 @@ class localrepository(repo.repository): tags.sort() return self.nodetagscache.get(node, []) + def nodebookmarks(self, node): + marks = [] + for bookmark, n in self._bookmarks.iteritems(): + if n == node: + marks.append(bookmark) + return sorted(marks) + def _branchtags(self, partial, lrev): # TODO: rename this function? tiprev = len(self) - 1