--- a/hgext/obsolete.py Mon Sep 19 01:57:43 2011 +0200
+++ b/hgext/obsolete.py Mon Sep 19 03:18:08 2011 +0200
@@ -283,6 +283,27 @@
rels.setdefault( subnode, set()).add(bin(objhex))
return rels
+### diagnostique tools
+#############################
+
+def unstables(repo):
+ """Return all unstable changeset"""
+ return scmutil.revrange(repo, ['obsolete():: and (not obsolete())'])
+
+def newerversion(repo, obs):
+ """Return the newer version of an obsolete changeset"""
+ toproceed = set([obs])
+ # XXX know optimization available
+ newer = set()
+ while toproceed:
+ current = toproceed.pop()
+ if current in repo._obsobjrels:
+ toproceed.update(repo._obsobjrels[current])
+ elif current is not None: # None is kill
+ newer.add(current)
+ return sorted(newer)
+
+
### repo subclassing
#############################