Mercurial > evolve
changeset 2917:044686b25cf7
tests: add tests for showing stack when merge is involved
This patch adds tests of showing stack when merges are involved. This will help
us in changing the behaviour and realising that in later patches.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 09 Sep 2017 22:32:44 +0530 |
parents | 17749d9d3968 |
children | 0437158e0ed6 |
files | tests/test-topic-stack.t |
diffstat | 1 files changed, 224 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-topic-stack.t Mon Sep 04 12:41:30 2017 +0200 +++ b/tests/test-topic-stack.t Sat Sep 09 22:32:44 2017 +0530 @@ -550,3 +550,227 @@ ^ c_D t1: c_f t0^ c_e (base) + +case involving a merge +---------------------- + + $ cd .. + $ hg init stack-gap-merge + $ cd stack-gap-merge + + $ echo aaa > aaa + $ hg commit -Am 'c_A' + adding aaa + $ hg topic red + $ echo bbb > bbb + $ hg commit -Am 'c_B' + adding bbb + $ echo ccc > ccc + $ hg commit -Am 'c_C' + adding ccc + $ hg topic blue + $ echo ddd > ddd + $ hg commit -Am 'c_D' + adding ddd + $ hg up 'desc("c_B")' + switching to topic red + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ echo eee > eee + $ hg commit -Am 'c_E' + adding eee + $ echo fff > fff + $ hg commit -Am 'c_F' + adding fff + $ hg topic blue + $ echo ggg > ggg + $ hg commit -Am 'c_G' + adding ggg + $ hg up 'desc("c_D")' + 2 files updated, 0 files merged, 3 files removed, 0 files unresolved + $ hg topic red + $ hg merge 'desc("c_G")' + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ hg commit -Am 'c_H' + $ hg topic blue + $ echo iii > iii + $ hg ci -Am 'c_I' + adding iii + + $ hg log -G + @ 8 default {blue} draft c_I + | + o 7 default {red} draft c_H + |\ + | o 6 default {blue} draft c_G + | | + | o 5 default {red} draft c_F + | | + | o 4 default {red} draft c_E + | | + o | 3 default {blue} draft c_D + | | + o | 2 default {red} draft c_C + |/ + o 1 default {red} draft c_B + | + o 0 default {} draft c_A + + + $ hg stack red + ### topic: red (3 heads) + ### branch: default, 6 behind + t5: c_C + t2^ c_B (base) + t4: c_F + t3: c_E + t2: c_B + ^ c_A + t1: c_H + t0^ c_D (base) + $ hg stack blue + ### topic: blue (3 heads) + ### branch: default, ambigious rebase destination + t3: c_D + ^ c_C + t2: c_G + ^ c_F + t1@ c_I (current) + t0^ c_H (base) + +Even with some obsolete and orphan changesets + +(the ordering of each branch of "blue" change because their hash change. we +should stabilize this eventuelly) + + $ hg up 'desc("c_B")' + switching to topic red + 0 files updated, 0 files merged, 6 files removed, 0 files unresolved + $ hg commit --amend --user test2 + $ hg up 'desc("c_C")' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg commit --amend --user test2 + $ hg up 'desc("c_D")' + switching to topic blue + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg commit --amend --user test2 + + $ hg log -G --rev 'sort(all(), "topo")' + @ 11 default {blue} draft c_D + | + | o 8 default {blue} draft c_I + | | + | o 7 default {red} draft c_H + | |\ + | | o 6 default {blue} draft c_G + | | | + | | o 5 default {red} draft c_F + | | | + | | o 4 default {red} draft c_E + | | | + | x | 3 default {blue} draft c_D + |/ / + x / 2 default {red} draft c_C + |/ + | o 10 default {red} draft c_C + |/ + x 1 default {red} draft c_B + | + | o 9 default {red} draft c_B + |/ + o 0 default {} draft c_A + + + $ hg stack red + ### topic: red (3 heads) + ### branch: default, ambigious rebase destination + t5$ c_H (unstable) + ^ c_D + t4$ c_C (unstable) + t1^ c_B (base) + t3$ c_F (unstable) + t2$ c_E (unstable) + t1: c_B + t0^ c_A (base) + $ hg stack blue + ### topic: blue (3 heads) + ### branch: default, ambigious rebase destination + t3$ c_G (unstable) + ^ c_F + t2$ c_I (unstable) + ^ c_H + t1$ c_D (current unstable) + t0^ c_C (base) + +more obsolescence + + $ hg up 'max(desc("c_H"))' + switching to topic red + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg commit --amend --user test3 + $ hg up 'max(desc("c_G"))' + switching to topic blue + 0 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ hg commit --amend --user test3 + $ hg up 'max(desc("c_B"))' + switching to topic red + 0 files updated, 0 files merged, 3 files removed, 0 files unresolved + $ hg commit --amend --user test3 + $ hg up 'max(desc("c_C"))' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg commit --amend --user test3 + $ hg up 'max(desc("c_D"))' + switching to topic blue + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg commit --amend --user test3 + + $ hg log -G --rev 'sort(all(), "topo")' + @ 16 default {blue} draft c_D + | + | o 13 default {blue} draft c_G + | | + | | o 12 default {red} draft c_H + | | |\ + | | | | o 8 default {blue} draft c_I + | | | | | + | | +---x 7 default {red} draft c_H + | | | |/ + | +---x 6 default {blue} draft c_G + | | | + | o | 5 default {red} draft c_F + | | | + | o | 4 default {red} draft c_E + | | | + +---x 3 default {blue} draft c_D + | | + x | 2 default {red} draft c_C + |/ + | o 15 default {red} draft c_C + |/ + x 1 default {red} draft c_B + | + | o 14 default {red} draft c_B + |/ + o 0 default {} draft c_A + + + $ hg stack red + ### topic: red (3 heads) + ### branch: default, ambigious rebase destination + t5$ c_H (unstable) + ^ c_D + t4$ c_F (unstable) + t3$ c_E (unstable) + t1^ c_B (base) + t2$ c_C (unstable) + t1: c_B + t0^ c_A (base) + $ hg stack blue + ### topic: blue (3 heads) + ### branch: default, ambigious rebase destination + t3$ c_I (unstable) + ^ c_H + t2$ c_G (unstable) + ^ c_F + t1$ c_D (current unstable) + t0^ c_C (base)