[PATCH 6 of 7] context: add obsolete related function to changectx

Pierre-Yves David pierre-yves.david at ens-lyon.org
Mon May 14 11:10:27 CDT 2012


# HG changeset patch
# User Pierre-Yves.David at ens-lyon.org
# Date 1337010174 -7200
# Node ID 24f1d1c09ad14226025c60a02b12a4cbf6908b8d
# Parent  83c2e502114062b05f25533ac172b40b95e686c1
context: add obsolete related function to changectx

ctx.obsolete(): return True if the changeset is obsoleted by any marker.

ctx.obsmarkers(): yield markerctx for marker making this changeset obsolete

ctx.replmarkers(): yield markerctx for marker making this changeset a
remplacement

diff -r 83c2e5021140 -r 24f1d1c09ad1 mercurial/context.py
--- a/mercurial/context.py	Mon May 14 17:29:11 2012 +0200
+++ b/mercurial/context.py	Mon May 14 17:42:54 2012 +0200
@@ -229,6 +229,20 @@
         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 obsmarkers(self):
+        """obsolete marker making this changeset obsolete"""
+        for marker in self._repo.obsstore.obsoleted.get(self.node(), ()):
+            yield markerctx(self._repo, marker)
+
+    def replmarkers(self):
+        """obsolete marker marking this changeset as a replacement"""
+        for marker in self._repo.obsstore.replacements.get(self.node(), ()):
+            yield markerctx(self._repo, marker)
+
     def _fileinfo(self, path):
         if '_manifest' in self.__dict__:
             try:


More information about the Mercurial-devel mailing list