tests/test-topic-stack.t
author Pierre-Yves David <pierre-yves.david@fb.com>
Mon, 14 Mar 2016 18:11:52 +0000
changeset 1897 38570c53b1cf
parent 1896 4ae421cbb07c
child 1898 2b65c5a6591c
permissions -rw-r--r--
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