Mercurial > hg > evolve
changeset 2087:ba79d23594d6
stack: reusing the index number in base when applicable
This clarify the branching when it is easy to track back the branching point.
This does not takes the evolution graph into account yet.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Fri, 26 Aug 2016 12:52:06 +0200 |
parents | 71410fa2c253 |
children | 28fbc627b704 |
files | hgext3rd/topic/__init__.py hgext3rd/topic/stack.py tests/test-topic-stack.t |
diffstat | 3 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext3rd/topic/__init__.py +++ b/hgext3rd/topic/__init__.py @@ -50,6 +50,7 @@ 'topic.list.behindcount': 'cyan', 'topic.list.behinderror': 'red', 'topic.stack.index': 'yellow', + 'topic.stack.index.base': 'none dim', 'topic.stack.state.base': 'dim', 'topic.stack.state.clean': 'green', 'topic.stack.index.current': 'cyan', # random pick
--- a/hgext3rd/topic/stack.py +++ b/hgext3rd/topic/stack.py @@ -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:
--- a/tests/test-topic-stack.t +++ b/tests/test-topic-stack.t @@ -194,7 +194,7 @@ $ hg top -l t6: c_f t5: c_e - ^ c_d + t2^ c_d (base) t4@ c_h (current) t3: c_g t2: c_d @@ -236,7 +236,7 @@ $ hg topic --list t6$ c_f (unstable) t5$ c_e (unstable) - ^ c_D + t2^ c_D (base) t4: c_h t3: c_g t2@ c_D (current)