hgext3rd/topic/revset.py
changeset 1910 24986e5a537c
parent 1901 85390446f8c1
child 1922 3d14e9eef3c1
--- a/hgext3rd/topic/revset.py	Mon Mar 14 23:37:58 2016 +0000
+++ b/hgext3rd/topic/revset.py	Thu Mar 17 09:13:12 2016 -0700
@@ -1,7 +1,7 @@
 from mercurial import revset
 from mercurial import util
 
-from . import constants, destination
+from . import constants, destination, stack
 
 try:
     mkmatcher = revset._stringmatcher
@@ -45,6 +45,22 @@
         branch = repo['.'].branch()
     return subset & destination.ngtip(repo, branch)
 
+def stackset(repo, subset, x):
+    """`stack()`
+    All relevant changes in the current topic,
+
+    This is roughly equivalent to 'topic(.) - obsolete' with a sorting moving
+    unstable changeset after there future parent (as if evolve where already
+    run)."""
+    topic = repo.currenttopic
+    if not topic:
+        raise error.Abort(_('no active topic to list'))
+    # ordering hack, boo
+    return revset.baseset(stack.getstack(repo, topic)) & subset
+
+
+
 def modsetup():
     revset.symbols.update({'topic': topicset})
     revset.symbols.update({'ngtip': ngtipset})
+    revset.symbols.update({'stack': stackset})