tests/test-topic-stack.t
changeset 1909 36112e361ee4
parent 1906 5e9ce6310720
child 1910 24986e5a537c
--- a/tests/test-topic-stack.t	Mon Mar 14 19:22:21 2016 +0000
+++ b/tests/test-topic-stack.t	Mon Mar 14 23:37:58 2016 +0000
@@ -57,6 +57,7 @@
   $ hg topic
    * foo
   $ hg topic --list
+    _ c_b
   t0: c_c
   t1: c_d
   t2: c_e
@@ -104,7 +105,115 @@
   o  0 default {} draft c_a
   
   $ hg topic --list
+    _ c_b
   t0: c_c
   t1@ c_d (current)
   t2$ c_e (unstable)
   t3$ c_f (unstable)
+
+Case with multiple heads on the topic
+-------------------------------------
+
+Make things linear again
+
+  $ hg rebase -s 'desc(c_e)' -d 'desc(c_d) - obsolete()'
+  rebasing 4:91fa8808d101 "c_e"
+  rebasing 5:4ec5094907b7 "c_f"
+  $ hg log -G
+  o  9 default {foo} draft c_f
+  |
+  o  8 default {foo} draft c_e
+  |
+  @  7 default {foo} draft c_d
+  |
+  o  2 default {foo} draft c_c
+  |
+  o  1 default {} draft c_b
+  |
+  o  0 default {} draft c_a
+  
+
+
+Create the second branch
+
+  $ hg up 'desc(c_d)'
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo aaa > ggg
+  $ hg add ggg
+  $ hg commit -m c_g
+  created new head
+  $ echo aaa > hhh
+  $ hg add hhh
+  $ hg commit -m c_h
+  created new head
+  $ hg log -G
+  @  11 default {foo} draft c_h
+  |
+  o  10 default {foo} draft c_g
+  |
+  | o  9 default {foo} draft c_f
+  | |
+  | o  8 default {foo} draft c_e
+  |/
+  o  7 default {foo} draft c_d
+  |
+  o  2 default {foo} draft c_c
+  |
+  o  1 default {} draft c_b
+  |
+  o  0 default {} draft c_a
+  
+
+Test output
+
+  $ hg top -l
+    _ c_b
+  t0: c_c
+  t1: c_d
+  t2: c_g
+  t3@ c_h (current)
+    _ c_d
+  t4: c_e
+  t5: c_f
+
+Case with multiple heads on the topic with unstability involved
+---------------------------------------------------------------
+
+We amend the message to make sure the display base pick the right changeset
+
+  $ hg up 'desc(c_d)'
+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  $ echo ccc > ddd
+  $ hg commit --amend -m 'c_D' 
+  $ hg rebase -d . -s 'desc(c_g)'
+  rebasing 10:11286b4fcb3d "c_g"
+  rebasing 11:3ad57527186d "c_h"
+  $ hg log -G
+  o  15 default {foo} draft c_h
+  |
+  o  14 default {foo} draft c_g
+  |
+  @  13 default {foo} draft c_D
+  |
+  | o  9 default {foo} draft c_f
+  | |
+  | o  8 default {foo} draft c_e
+  | |
+  | x  7 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_b
+  t0: c_c
+  t1@ c_D (current)
+  t2: c_g
+  t3: c_h
+    _ c_D
+  t4$ c_e (unstable)
+  t5$ c_f (unstable)