--- a/hgext3rd/topic/stack.py Fri Aug 26 12:37:52 2016 +0200
+++ b/hgext3rd/topic/stack.py Fri Aug 26 12:52:06 2016 +0200
@@ -18,19 +18,21 @@
fm = ui.formatter('topicstack', opts)
prev = None
entries = []
+ idxmap = {}
for idx, r in enumerate(getstack(repo, topic), 1):
ctx = repo[r]
p1 = ctx.p1()
if p1.obsolete():
p1 = repo[_singlesuccessor(repo, p1)]
if p1.rev() != prev and p1.node() != node.nullid:
- entries.append((None, p1))
- entries.append((idx, ctx))
+ entries.append((idxmap.get(p1.rev()), False, p1))
+ entries.append((idx, True, ctx))
+ idxmap[ctx.rev()] = idx
prev = r
# super crude initial version
- for idx, ctx in entries[::-1]:
- if idx is None:
+ for idx, isentry, ctx in entries[::-1]:
+ if not isentry:
symbol = '^'
state = 'base'
elif repo.revs('%d and parents()', ctx.rev()):
@@ -43,6 +45,7 @@
symbol = ':'
state = 'clean'
fm.startitem()
+ fm.data(isentry=isentry)
if idx is None:
fm.plain(' ')
else: