--- a/hgext/obsolete.py Thu Mar 08 12:21:01 2012 +0100
+++ b/hgext/obsolete.py Thu Mar 08 13:56:27 2012 +0100
@@ -134,6 +134,24 @@
args = revset.getargs(x, 0, 0, 'unstable takes no arguments')
return [r for r in subset if r in repo._extinctset]
+
+def _obsparents(repo, narrow, s):
+ cs = set()
+ nm = repo.changelog.nodemap
+ for r in s:
+ for p in repo._obssubrels.get(repo[r].node(), ()):
+ pr = nm.get(p, None)
+ if pr is not None:
+ cs.add(pr)
+ return cs
+
+
+def revsetobsparents(repo, subset, x):
+ """obsolete parents of a changeset"""
+ s = revset.getset(repo, range(len(repo)), x)
+ cs = _obsparents(repo, subset, s)
+ return [r for r in subset if r in cs]
+
### Other Extension compat
############################
@@ -160,6 +178,7 @@
revset.symbols["unstable"] = revsetunstable
revset.symbols["suspended"] = revsetsuspended
revset.symbols["extinct"] = revsetextinct
+ revset.symbols["obsparents"] = revsetobsparents
try: