# HG changeset patch # User Pierre-Yves David # Date 1457977711 0 # Node ID 4ae421cbb07c5b9817394179ce9178da242936ff # Parent c8e4c6e03957877e016202030ee1444e850f751a stack: exclude obsolete changeset from the set We care about relevant changeset, obsolete have a new version somewhere and we don't care about the old one in our display. In case of unstability, the ordering used is still wrong. diff -r c8e4c6e03957 -r 4ae421cbb07c src/topic/stack.py --- a/src/topic/stack.py Mon Mar 14 17:37:39 2016 +0000 +++ b/src/topic/stack.py Mon Mar 14 17:48:31 2016 +0000 @@ -6,9 +6,8 @@ from mercurial import error def _getstack(repo, topic): - # XXX need to exclude obsolete changesets # XXX need sorting - return repo.revs("topic(%s)", topic) + return repo.revs("topic(%s) - obsolete()", topic) def showstack(ui, repo, topic): if not topic: diff -r c8e4c6e03957 -r 4ae421cbb07c tests/test-topic-stack.t --- a/tests/test-topic-stack.t Mon Mar 14 17:37:39 2016 +0000 +++ b/tests/test-topic-stack.t Mon Mar 14 17:48:31 2016 +0000 @@ -6,6 +6,8 @@ $ cat << EOF >> $HGRCPATH > [ui] > logtemplate = {rev} {branch} \{{get(namespaces, "topics")}} {phase} {desc|firstline}\n + > [experimental] + > evolution=createmarkers,exchange,allowunstable > EOF (new head warning seems buggy) @@ -66,3 +68,32 @@ $ hg topic --list abort: no active topic to list [255] + +Case with some of the topic unstable +------------------------------------ + + $ hg up 'desc(c_d)' + switching to topic foo + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ echo bbb > ddd + $ hg commit --amend + $ hg log -G + @ 7 default {foo} draft c_d + | + | o 5 default {foo} draft c_f + | | + | o 4 default {foo} draft c_e + | | + | x 3 default {foo} draft c_d + |/ + o 2 default {foo} draft c_c + | + o 1 default {} draft c_b + | + o 0 default {} draft c_a + + $ hg topic --list + c_c + c_e + c_f + c_d