[PATCH 7 of 8] obsolete: function and method to access some obsolete data

pierre-yves.david at logilab.fr pierre-yves.david at logilab.fr
Thu Jun 7 12:24:58 CDT 2012


# HG changeset patch
# User Pierre-Yves.David at ens-lyon.org
# Date 1338940618 -7200
# Node ID 97a45a47672a8df0c5f22afec7e17197f4d2d7af
# Parent  e1d9043377d43a41c37f086aadfbe0552854c29a
obsolete: function and method to access some obsolete data

An `obsolete` boolean property is added to changeset context. Function to get
obsolete marker object from a changeset context are added to the obsolete
module.

diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -228,10 +228,14 @@ class changectx(object):
 
     def descendants(self):
         for d in self._repo.changelog.descendants([self._rev]):
             yield changectx(self._repo, d)
 
+    def obsolete(self):
+        """True if the changeset is obsolete"""
+        return self.node() in self._repo.obsstore.obsoleted
+
     def _fileinfo(self, path):
         if '_manifest' in self.__dict__:
             try:
                 return self._manifest[path], self._manifest.flags(path)
             except KeyError:
diff --git a/mercurial/obsolete.py b/mercurial/obsolete.py
--- a/mercurial/obsolete.py
+++ b/mercurial/obsolete.py
@@ -265,5 +265,15 @@ def pushmarker(repo, key, old, new):
 def allmarkers(repo):
     """all obsolete markers known in a repository"""
     for markerdata in repo.obsstore:
         yield marker(repo, markerdata)
 
+def precursormarkers(ctx):
+    """obsolete marker making this changeset obsolete"""
+    for data in ctx._repo.obsstore.precursors.get(ctx.node(), ()):
+        yield marker(ctx._repo, data)
+
+def successormarkers(ctx):
+    """obsolete marker marking this changeset as a successors"""
+    for data in ctx._repo.obsstore.successors.get(ctx.node(), ()):
+        yield marker(ctx._repo, data)
+


More information about the Mercurial-devel mailing list