stack: fix printing order in case of unstability
The stack was displayed using revision number order, this give good result in
the simple case (straight stack) but give bad result when the stack is not
linear because of unstability.
We fixes it by reusing the evolution logic for sorting. As we do not live next
to evolution yet, we duplicated this logic for now.
$ . "$TESTDIR/testlib"
Initial setup
$ 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)
$ hg init main
$ cd main
$ echo aaa > aaa
$ hg add aaa
$ hg commit -m c_a
$ echo aaa > bbb
$ hg add bbb
$ hg commit -m c_b
$ hg topic foo
$ echo aaa > ccc
$ hg add ccc
$ hg commit -m c_c
$ echo aaa > ddd
$ hg add ddd
$ hg commit -m c_d
created new head
$ echo aaa > eee
$ hg add eee
$ hg commit -m c_e
created new head
$ echo aaa > fff
$ hg add fff
$ hg commit -m c_f
created new head
$ hg log -G
@ 5 default {foo} draft c_f
|
o 4 default {foo} draft c_e
|
o 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
Simple test
-----------
hg topic -l list all changeset in the topic
$ hg topic
* foo
$ hg topic --list
c_c
c_d
c_e
c_f
error case, nothing to list
$ hg topic --clear
$ 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_d
c_e
c_f