[PATCH 4 of 8] obsolete: add easy way to iterate over obsolete marker object
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Thu Jun 7 17:24:55 UTC 2012
# HG changeset patch
# User Pierre-Yves.David at ens-lyon.org
# Date 1338763819 -7200
# Node ID f207b16d5c6d8976d5d145abe20ac36ee2bb5c50
# Parent 4ca996519709006862a9c6ed583f9de374022c06
obsolete: add easy way to iterate over obsolete marker object
diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py
--- a/mercurial/obsolete.py
+++ b/mercurial/obsolete.py
@@ -161,10 +161,13 @@ class obsstore(object):
# new markers to serialize
self._new = []
self.precursors = {}
self.successors = {}
+ def __iter__(self):
+ return iter(self._all)
+
def create(self, prec, succs=(), flag=0, metadata=None):
"""obsolete: add a new obsolete marker
* ensuring it is hashable
* check mandatory metadata
@@ -216,5 +219,13 @@ class obsstore(object):
format = _fmfixed + (_fmnode * nbsuc)
data = [nbsuc, len(metadata), flags, pre]
data.extend(sucs)
stream.write(_pack(format, *data))
stream.write(metadata)
+
+
+
+def allmarkers(repo):
+ """all obsolete markers known in a repository"""
+ for markerdata in repo.obsstore:
+ yield marker(repo, markerdata)
+
More information about the Mercurial-devel
mailing list