topic: exclude public and topic changeset from branch stack
Stack use-case is to show the current work in progress, which are symbolized by
the phase draft and secret phase. Moreover showing public changesets in stack
output when displaying current branch would display a lot of changesets for
long-lived branches and would be quite useless.
We also exclude topic changeset form the stack since they already exist on their
own stack.
getstack revsets didn't needed update when displaying a topic as when a
changeset become public, its topic is no longer relevant.
--- a/hgext3rd/topic/stack.py Thu Jun 29 16:29:08 2017 +0200
+++ b/hgext3rd/topic/stack.py Thu Jun 29 16:49:33 2017 +0200
@@ -17,7 +17,7 @@
elif topic is not None:
trevs = repo.revs("topic(%s) - obsolete()", topic)
elif branch is not None:
- trevs = repo.revs("branch(%s) - obsolete()", branch)
+ trevs = repo.revs("branch(%s) - public() - obsolete() - topic()", branch)
else:
raise error.ProgrammingError('neither branch and topic specified (not defined yet)')
return _orderrevs(repo, trevs)
--- a/tests/test-stack-branch.t Thu Jun 29 16:29:08 2017 +0200
+++ b/tests/test-stack-branch.t Thu Jun 29 16:49:33 2017 +0200
@@ -251,3 +251,39 @@
b1: c_c
^ c_b
+Check that stack doesn't show draft changesets on a branch
+----------------------------------------------------------
+
+ $ hg stack
+ ### branch: foo (2 heads)
+ b6$ c_f (unstable)
+ b5$ c_e (unstable)
+ b2^ c_D (base)
+ b4: c_h
+ b3: c_g
+ b2@ c_D (current)
+ b1: c_c
+ ^ c_b
+ $ hg phase --public b1
+ $ hg stack
+ ### branch: foo (2 heads)
+ b5$ c_f (unstable)
+ b4$ c_e (unstable)
+ b1^ c_D (base)
+ b3: c_h
+ b2: c_g
+ b1@ c_D (current)
+ ^ c_c
+
+Check that stack doesn't show changeset with a topic
+----------------------------------------------------
+
+ $ hg topic --rev b4::b5 sometopic
+ changed topic on 2 changes
+ please run hg evolve --rev "topic(sometopic)" now
+ $ hg stack
+ ### branch: foo
+ b3: c_h
+ b2: c_g
+ b1@ c_D (current)
+ ^ c_c
--- a/tests/test-topic-stack.t Thu Jun 29 16:29:08 2017 +0200
+++ b/tests/test-topic-stack.t Thu Jun 29 16:49:33 2017 +0200
@@ -129,13 +129,7 @@
$ hg topic --clear
$ hg stack
- ### branch: default
- b6@ c_f (current)
- b5: c_e
- b4: c_d
- b3: c_c
- b2: c_b
- b1: c_a
+ ### branch:
Test "t#" reference
-------------------
@@ -340,3 +334,4 @@
$ hg topic --list thisdoesnotexist
abort: cannot resolve "thisdoesnotexist": no such topic found
[255]
+