Mercurial > evolve
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: