[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