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