--- a/tests/test-topic-stack.t Tue Jul 25 04:00:17 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,401 +0,0 @@
- $ . "$TESTDIR/testlib/topic_setup.sh"
-
-Initial setup
-
-
- $ cat << EOF >> $HGRCPATH
- > [extensions]
- > color =
- > [ui]
- > logtemplate = {rev} {branch} \{{get(namespaces, "topics")}} {phase} {desc|firstline}\n
- > [experimental]
- > evolution=createmarkers,exchange,allowunstable
- > EOF
-
- $ hg init main
- $ cd main
- $ hg topic other
- $ 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
- $ echo aaa > eee
- $ hg add eee
- $ hg commit -m c_e
- $ echo aaa > fff
- $ hg add fff
- $ hg commit -m c_f
- $ 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 {other} draft c_b
- |
- o 0 default {other} draft c_a
-
-
-Check that topic without any parent does not crash --list
----------------------------------------------------------
-
- $ hg up other
- switching to topic other
- 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
- $ hg topic --list
- ### topic: other
- ### branch: default
- t2@ c_b (current)
- t1: c_a
- $ hg phase --public 'topic("other")'
- $ hg up foo
- switching to topic foo
- 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-
-Simple test
------------
-
-'hg stack' list all changeset in the topic
-
- $ hg topic
- * foo
- $ hg stack
- ### topic: foo
- ### branch: default
- t4@ c_f (current)
- t3: c_e
- t2: c_d
- t1: c_c
- t0^ c_b (base)
- $ hg stack -v
- ### topic: foo
- ### branch: default
- t4(6559e6d93aea)@ c_f (current)
- t3(0f9ac936c87d): c_e
- t2(e629654d7050): c_d
- t1(8522f9e3fee9): c_c
- t0(ea705abc4f51)^ c_b (base)
- $ hg stack -Tjson | python -m json.tool
- [
- {
- "isentry": true,
- "topic.stack.desc": "c_f",
- "topic.stack.index": 4,
- "topic.stack.state": [
- "current"
- ],
- "topic.stack.state.symbol": "@"
- },
- {
- "isentry": true,
- "topic.stack.desc": "c_e",
- "topic.stack.index": 3,
- "topic.stack.state": [
- "clean"
- ],
- "topic.stack.state.symbol": ":"
- },
- {
- "isentry": true,
- "topic.stack.desc": "c_d",
- "topic.stack.index": 2,
- "topic.stack.state": [
- "clean"
- ],
- "topic.stack.state.symbol": ":"
- },
- {
- "isentry": true,
- "topic.stack.desc": "c_c",
- "topic.stack.index": 1,
- "topic.stack.state": [
- "clean"
- ],
- "topic.stack.state.symbol": ":"
- },
- {
- "isentry": false,
- "topic.stack.desc": "c_b",
- "topic.stack.index": 0,
- "topic.stack.state": [
- "base"
- ],
- "topic.stack.state.symbol": "^"
- }
- ]
- $ hg stack -v -Tjson | python -m json.tool
- [
- {
- "isentry": true,
- "topic.stack.desc": "c_f",
- "topic.stack.index": 4,
- "topic.stack.shortnode": "6559e6d93aea",
- "topic.stack.state": [
- "current"
- ],
- "topic.stack.state.symbol": "@"
- },
- {
- "isentry": true,
- "topic.stack.desc": "c_e",
- "topic.stack.index": 3,
- "topic.stack.shortnode": "0f9ac936c87d",
- "topic.stack.state": [
- "clean"
- ],
- "topic.stack.state.symbol": ":"
- },
- {
- "isentry": true,
- "topic.stack.desc": "c_d",
- "topic.stack.index": 2,
- "topic.stack.shortnode": "e629654d7050",
- "topic.stack.state": [
- "clean"
- ],
- "topic.stack.state.symbol": ":"
- },
- {
- "isentry": true,
- "topic.stack.desc": "c_c",
- "topic.stack.index": 1,
- "topic.stack.shortnode": "8522f9e3fee9",
- "topic.stack.state": [
- "clean"
- ],
- "topic.stack.state.symbol": ":"
- },
- {
- "isentry": false,
- "topic.stack.desc": "c_b",
- "topic.stack.index": 0,
- "topic.stack.shortnode": "ea705abc4f51",
- "topic.stack.state": [
- "base"
- ],
- "topic.stack.state.symbol": "^"
- }
- ]
-
-error case, nothing to list
-
- $ hg topic --clear
- $ hg stack
- ### branch:
-
-Test "t#" reference
--------------------
-
-
- $ hg up t2
- abort: cannot resolve "t2": no active topic
- [255]
- $ hg topic foo
- $ hg up t42
- abort: cannot resolve "t42": topic "foo" has only 4 changesets
- [255]
- $ hg up t2
- 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
- $ hg summary
- parent: 3:e629654d7050
- c_d
- branch: default
- commit: (clean)
- update: (current)
- phases: 4 draft
- topic: foo
-
-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 {} public c_b
- |
- o 0 default {} public c_a
-
- $ hg topic --list
- ### topic: foo
- ### branch: default
- t4$ c_f (unstable)
- t3$ c_e (unstable)
- t2@ c_d (current)
- t1: c_c
- t0^ c_b (base)
- $ hg up t3
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg topic --list
- ### topic: foo
- ### branch: default
- t4$ c_f (unstable)
- t3$ c_e (current unstable)
- t2: c_d
- t1: c_c
- t0^ c_b (base)
- $ hg topic --list --color=debug
- [topic.stack.summary.topic|### topic: [topic.active|foo]]
- [topic.stack.summary.branches|### branch: default]
- [topic.stack.index topic.stack.index.unstable|t4][topic.stack.state topic.stack.state.unstable|$] [topic.stack.desc topic.stack.desc.unstable|c_f][topic.stack.state topic.stack.state.unstable| (unstable)]
- [topic.stack.index topic.stack.index.current topic.stack.index.unstable|t3][topic.stack.state topic.stack.state.current topic.stack.state.unstable|$] [topic.stack.desc topic.stack.desc.current topic.stack.desc.unstable|c_e][topic.stack.state topic.stack.state.current topic.stack.state.unstable| (current unstable)]
- [topic.stack.index topic.stack.index.clean|t2][topic.stack.state topic.stack.state.clean|:] [topic.stack.desc topic.stack.desc.clean|c_d]
- [topic.stack.index topic.stack.index.clean|t1][topic.stack.state topic.stack.state.clean|:] [topic.stack.desc topic.stack.desc.clean|c_c]
- [topic.stack.index topic.stack.index.base|t0][topic.stack.state topic.stack.state.base|^] [topic.stack.desc topic.stack.desc.base|c_b][topic.stack.state topic.stack.state.base| (base)]
- $ hg up t2
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
-
-Also test the revset:
-
- $ hg log -r 'stack()'
- 2 default {foo} draft c_c
- 7 default {foo} draft c_d
- 4 default {foo} draft c_e
- 5 default {foo} draft c_f
-
- $ hg log -r 'stack(foo)'
- hg: parse error: stack() takes no argument, it works on current topic
- [255]
-
- $ hg log -r 'stack(foobar)'
- hg: parse error: stack() takes no argument, it works on current topic
- [255]
-
-Case with multiple heads on the topic
--------------------------------------
-
-Make things linear again
-
- $ hg rebase -s 'desc(c_e)' -d 'desc(c_d) - obsolete()'
- rebasing 4:0f9ac936c87d "c_e"
- rebasing 5:6559e6d93aea "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 {} public c_b
- |
- o 0 default {} public 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
- $ echo aaa > hhh
- $ hg add hhh
- $ hg commit -m c_h
- $ 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 {} public c_b
- |
- o 0 default {} public c_a
-
-
-Test output
-
- $ hg top -l
- ### topic: foo (2 heads)
- ### branch: default
- t6: c_f
- t5: c_e
- t2^ c_d (base)
- t4@ c_h (current)
- t3: c_g
- t2: c_d
- t1: c_c
- t0^ c_b (base)
-
-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:81264ae8a36a "c_g"
- rebasing 11:fde5f5941642 "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 {} public c_b
- |
- o 0 default {} public c_a
-
-
- $ hg topic --list
- ### topic: foo (2 heads)
- ### branch: default
- t6$ c_f (unstable)
- t5$ c_e (unstable)
- t2^ c_D (base)
- t4: c_h
- t3: c_g
- t2@ c_D (current)
- t1: c_c
- t0^ c_b (base)
-
-Trying to list non existing topic
- $ hg stack thisdoesnotexist
- abort: cannot resolve "thisdoesnotexist": no such topic found
- [255]
- $ hg topic --list thisdoesnotexist
- abort: cannot resolve "thisdoesnotexist": no such topic found
- [255]
-