Mercurial > evolve
view tests/test-stack-branch.t @ 2926:1abafae41fe2
evolve: use registrar.templatekeyword to register template keyword functions
Now, using registrar.templatekeyword of Mercurial directly in evolve
extension should be safe enough. because it has been available since
Mercurial 3.8, and minimum Mercurial version for evolve extension is
3.8, too.
BTW, this also fixes an issue of "hg help templates" output that
template keywords "precursors" and "successors" are not displayed as
same as others, because they do not have ":KEYWORD:" prefix in their
docstring.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Mon, 07 Aug 2017 23:22:41 +0900 |
parents | ef4832faaf09 |
children | 06844693bb21 |
line wrap: on
line source
$ . "$TESTDIR/testlib/topic_setup.sh" Initial setup $ cat << EOF >> $HGRCPATH > [ui] > logtemplate = {rev} {branch} \{{get(namespaces, "topics")}} {phase} {desc|firstline}\n > [experimental] > evolution=createmarkers,exchange,allowunstable > EOF $ hg init main $ cd main $ hg branch other marked working directory as branch other (branches are permanent and global, did you want a bookmark?) $ echo aaa > aaa $ hg add aaa $ hg commit -m c_a $ echo aaa > bbb $ hg add bbb $ hg commit -m c_b $ hg branch foo marked working directory as branch 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 foo {} draft c_f | o 4 foo {} draft c_e | o 3 foo {} draft c_d | o 2 foo {} draft c_c | o 1 other {} draft c_b | o 0 other {} draft c_a Check that topic without any parent does not crash --list --------------------------------------------------------- $ hg up other 0 files updated, 0 files merged, 4 files removed, 0 files unresolved $ hg stack ### branch: other b2@ c_b (current) b1: c_a $ hg phase --public 'branch("other")' $ hg up foo 4 files updated, 0 files merged, 0 files removed, 0 files unresolved Simple test ----------- 'hg stack' list all changeset in the topic $ hg branch foo $ hg stack ### branch: foo b4@ c_f (current) b3: c_e b2: c_d b1: c_c b0^ c_b (base) $ hg stack -v ### branch: foo b4(913c298d8b0a)@ c_f (current) b3(4f2a69f6d380): c_e b2(f61adbacd17a): c_d b1(3e9313bc4b71): c_c b0(4a04f1104a27)^ c_b (base) Test "t#" reference ------------------- $ hg up b2 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg up foo 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg up b42 abort: cannot resolve "b42": branch "foo" has only 4 changesets [255] $ hg up b2 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg summary parent: 3:f61adbacd17a c_d branch: foo commit: (clean) update: 2 new changesets (update) phases: 4 draft Case with some of the branch unstable ------------------------------------ $ echo bbb > ddd $ hg commit --amend $ hg log -G @ 7 foo {} draft c_d | | o 5 foo {} draft c_f | | | o 4 foo {} draft c_e | | | x 3 foo {} draft c_d |/ o 2 foo {} draft c_c | o 1 other {} public c_b | o 0 other {} public c_a $ hg stack ### branch: foo b4$ c_f (unstable) b3$ c_e (unstable) b2@ c_d (current) b1: c_c b0^ c_b (base) $ hg up b3 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg stack ### branch: foo b4$ c_f (unstable) b3$ c_e (current unstable) b2: c_d b1: c_c b0^ c_b (base) $ hg up b2 1 files updated, 0 files merged, 1 files removed, 0 files unresolved Also test the revset: $ hg log -r 'stack()' 2 foo {} draft c_c 7 foo {} draft c_d 4 foo {} draft c_e 5 foo {} draft c_f Case with multiple heads on the topic ------------------------------------- Make things linear again $ hg rebase -s 'desc(c_e)' -d 'desc(c_d) - obsolete()' rebasing 4:4f2a69f6d380 "c_e" rebasing 5:913c298d8b0a "c_f" $ hg log -G o 9 foo {} draft c_f | o 8 foo {} draft c_e | @ 7 foo {} draft c_d | o 2 foo {} draft c_c | o 1 other {} public c_b | o 0 other {} 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 created new head $ echo aaa > hhh $ hg add hhh $ hg commit -m c_h $ hg log -G @ 11 foo {} draft c_h | o 10 foo {} draft c_g | | o 9 foo {} draft c_f | | | o 8 foo {} draft c_e |/ o 7 foo {} draft c_d | o 2 foo {} draft c_c | o 1 other {} public c_b | o 0 other {} public c_a Test output $ hg stack ### branch: foo (2 heads) b6: c_f b5: c_e b2^ c_d (base) b4@ c_h (current) b3: c_g b2: c_d b1: c_c b0^ 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:2ebb6e48ab8a "c_g" rebasing 11:634f38e27a1d "c_h" $ hg log -G o 15 foo {} draft c_h | o 14 foo {} draft c_g | @ 13 foo {} draft c_D | | o 9 foo {} draft c_f | | | o 8 foo {} draft c_e | | | x 7 foo {} draft c_d |/ o 2 foo {} draft c_c | o 1 other {} public c_b | o 0 other {} public c_a $ hg stack ### branch: foo (2 heads) b6$ c_f (unstable) b5$ c_e (unstable) b2^ c_D (base) b4: c_h b3: c_g b2@ c_D (current) b1: c_c b0^ c_b (base) Check that stack doesn't show draft changesets on a branch ---------------------------------------------------------- $ hg log --graph o 15 foo {} draft c_h | o 14 foo {} draft c_g | @ 13 foo {} draft c_D | | o 9 foo {} draft c_f | | | o 8 foo {} draft c_e | | | x 7 foo {} draft c_d |/ o 2 foo {} draft c_c | o 1 other {} public c_b | o 0 other {} public c_a $ hg stack ### branch: foo (2 heads) b6$ c_f (unstable) b5$ c_e (unstable) b2^ c_D (base) b4: c_h b3: c_g b2@ c_D (current) b1: c_c b0^ c_b (base) $ hg phase --public b1 $ hg stack ### branch: foo (2 heads) b5$ c_f (unstable) b4$ c_e (unstable) b1^ c_D (base) b3: c_h b2: c_g b1@ c_D (current) b0^ c_c (base) Check that stack doesn't show changeset with a topic ---------------------------------------------------- $ hg topic --rev b4::b5 sometopic changed topic on 2 changes $ hg stack ### branch: foo b3: c_h b2: c_g b1@ c_D (current) b0^ c_c (base)