Mercurial > hg
diff mercurial/obsolete.py @ 22274:10e87c67f1c7
debugobsolete: add a --rev argument
This argument can be used to list markers relevant to a set of revisions. We
add a test for this option and the relevant computation in the same move.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Tue, 19 Aug 2014 23:22:44 -0700 |
parents | e6d01239f779 |
children | a65697c3f20e |
line wrap: on
line diff
--- 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(), ()):