[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 12:24:55 CDT 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