tests/test-topic-stack.t
author Pierre-Yves David <pierre-yves.david@fb.com>
Mon, 14 Mar 2016 18:39:19 +0000
changeset 1904 f52c02bf47b7
parent 1898 2b65c5a6591c
child 1905 3b42478ef017
permissions -rw-r--r--
stack: allow to refer to changeset using "t2" form hg up "t0" is seen as "update to the first changeset of my current topic". Eventually we'll drop the "t2" form in favor of the planned generic indexing operator '.{t2}'.

  $ . "$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
  0: c_c
  1: c_d
  2: c_e
  3: c_f

error case, nothing to list

  $ hg topic --clear
  $ hg topic --list
  abort: no active topic to list
  [255]

Test "t#" reference
-------------------


  $ hg up t1
  abort: cannot resolve "t1": no active topic
  [255]
  $ hg topic foo
  $ hg up t42
  abort: cannot resolve "t42": topic "foo" has only 4 changesets
  [255]
  $ hg up t1
  0 files updated, 0 files merged, 2 files removed, 0 files unresolved

Case with some of the topic unstable
------------------------------------

  $ 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
  0: c_c
  1: c_d
  2: c_e
  3: c_f