diff hgext3rd/topic/revset.py @ 4323:482992803db6

topic: make revsets like foo#stack[-1] work too We remove base commit when n < 0 because it's confusing to see base (which technically isn't a commit inside the stack) at both 0 and -n.
author Anton Shestakov <av6@dwimlabs.net>
date Wed, 26 Dec 2018 22:14:23 +0800
parents 41f38bf15b4c
children 0f015fe4f71f
line wrap: on
line diff
--- a/hgext3rd/topic/revset.py	Sun Dec 16 11:22:04 2018 +0800
+++ b/hgext3rd/topic/revset.py	Wed Dec 26 22:14:23 2018 +0800
@@ -116,8 +116,6 @@
         (e.g. when stack index is too high), this returns empty set to be more
         revset-friendly.
         """
-        if n < 0:
-            return revset.baseset()
         s = revset.getset(repo, revset.fullreposet(repo), x)
         if not s:
             return revset.baseset()
@@ -128,8 +126,12 @@
                 st = stack.stack(repo, topic=topic)
             else:
                 st = stack.stack(repo, branch=repo[r].branch())
+            if n < 0:
+                st = list(st)[1:]
+            else:
+                st = list(st)
             try:
-                rev = list(st)[n]
+                rev = st[n]
             except IndexError:
                 continue
             if rev == -1 and n == 0: