--- a/mercurial/obsolete.py Wed Aug 20 18:11:23 2014 -0700
+++ b/mercurial/obsolete.py Tue Aug 19 23:22:44 2014 -0700
@@ -494,11 +494,25 @@
finally:
lock.release()
-def getmarkers(repo):
- """returns markers known in a repository"""
- for markerdata in repo.obsstore:
+def getmarkers(repo, nodes=None):
+ """returns markers known in a repository
+
+ If <nodes> is specified, only markers "relevant" to those nodes are are
+ returned"""
+ if nodes is None:
+ rawmarkers = repo.obsstore
+ else:
+ rawmarkers = repo.obsstore.relevantmarkers(nodes)
+
+ for markerdata in rawmarkers:
yield marker(repo, markerdata)
+def relevantmarkers(repo, node):
+ """all obsolete markers relevant to some revision"""
+ for markerdata in repo.obsstore.relevantmarkers(node):
+ yield marker(repo, markerdata)
+
+
def precursormarkers(ctx):
"""obsolete marker marking this changeset as a successors"""
for data in ctx._repo.obsstore.precursors.get(ctx.node(), ()):