Mercurial > evolve
diff tests/test-stack-branch.t @ 6376:5c8196a550b6
topic: make hg stack work for branches with double slashes in them
Other commands are likely affected as well.
Things to note: we're using FQBN-formatted branch instead of full
branch//namespace/topic in the workingctx.dirty() check because otherwise, if
you had no topic active and were trying to update to a topic, wdir would be
considered to be dirty and update would abort (same with unset topic namespace
and trying to update to a changeset with topic namespace set). With just a bare
branch, this doesn't happen, because you can't deactivate a branch. This is
caught by test-topic.t.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Thu, 15 Dec 2022 15:44:39 +0400 |
parents | c4097632a1a3 |
children | c5848d8b664d |
line wrap: on
line diff
--- a/tests/test-stack-branch.t Mon Jan 30 19:19:52 2023 +0400 +++ b/tests/test-stack-branch.t Thu Dec 15 15:44:39 2022 +0400 @@ -12,8 +12,8 @@ $ hg init main $ cd main - $ hg branch other - marked working directory as branch other + $ hg branch double//slash + marked working directory as branch double//slash (branches are permanent and global, did you want a bookmark?) $ echo aaa > aaa $ hg add aaa @@ -21,8 +21,8 @@ $ echo aaa > bbb $ hg add bbb $ hg commit -m c_b - $ hg branch foo - marked working directory as branch foo + $ hg branch foo//bar + marked working directory as branch foo//bar $ echo aaa > ccc $ hg add ccc $ hg commit -m c_c @@ -36,30 +36,30 @@ $ hg add fff $ hg commit -m c_f $ hg log -G - @ 5 foo {} draft c_f + @ 5 foo//bar {} draft c_f | - o 4 foo {} draft c_e + o 4 foo//bar {} draft c_e | - o 3 foo {} draft c_d + o 3 foo//bar {} draft c_d | - o 2 foo {} draft c_c + o 2 foo//bar {} draft c_c | - o 1 other {} draft c_b + o 1 double//slash {} draft c_b | - o 0 other {} draft c_a + o 0 double//slash {} draft c_a Check that topic without any parent does not crash --list --------------------------------------------------------- - $ hg up other + $ hg up double//slash// 0 files updated, 0 files merged, 4 files removed, 0 files unresolved $ hg stack - ### target: other (branch) + ### target: double//slash (branch) s2@ c_b (current) s1: c_a - $ hg phase --public 'branch("other")' - $ hg up foo + $ hg phase --public 'branch("double//slash//")' + $ hg up foo//bar// 4 files updated, 0 files merged, 0 files removed, 0 files unresolved Simple test @@ -68,38 +68,38 @@ 'hg stack' list all changeset in the topic $ hg branch - foo + foo//bar $ hg stack - ### target: foo (branch) + ### target: foo//bar (branch) s4@ c_f (current) s3: c_e s2: c_d s1: c_c s0^ c_b (base) $ hg stack -v - ### target: foo (branch) - s4(913c298d8b0a)@ c_f (current) - s3(4f2a69f6d380): c_e - s2(f61adbacd17a): c_d - s1(3e9313bc4b71): c_c - s0(4a04f1104a27)^ c_b (base) + ### target: foo//bar (branch) + s4(18b3ff044de9)@ c_f (current) + s3(b1913e064ca1): c_e + s2(8fad7e98adf6): c_d + s1(da14ac95d156): c_c + s0(2450a061c0f0)^ c_b (base) Test "t#" reference ------------------- $ hg up s2 0 files updated, 0 files merged, 2 files removed, 0 files unresolved - $ hg up foo + $ hg up foo//bar// 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg up s42 - abort: cannot resolve "s42": branch "foo" has only 4 non-public changesets + abort: cannot resolve "s42": branch "foo//bar//" has only 4 non-public changesets [255] $ hg up s2 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg summary - parent: 3:f61adbacd17a + parent: 3:8fad7e98adf6 c_d - branch: foo + branch: foo//bar// commit: (clean) update: 2 new changesets (update) phases: 4 draft @@ -111,22 +111,22 @@ $ hg commit --amend 2 new orphan changesets $ hg log -G - @ 6 foo {} draft c_d + @ 6 foo//bar {} draft c_d | - | * 5 foo {} draft c_f + | * 5 foo//bar {} draft c_f | | - | * 4 foo {} draft c_e + | * 4 foo//bar {} draft c_e | | - | x 3 foo {} draft c_d + | x 3 foo//bar {} draft c_d |/ - o 2 foo {} draft c_c + o 2 foo//bar {} draft c_c | - o 1 other {} public c_b + o 1 double//slash {} public c_b | - o 0 other {} public c_a + o 0 double//slash {} public c_a $ hg stack - ### target: foo (branch) + ### target: foo//bar (branch) s4$ c_f (orphan) s3$ c_e (orphan) s2@ c_d (current) @@ -135,7 +135,7 @@ $ hg up s3 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg stack - ### target: foo (branch) + ### target: foo//bar (branch) s4$ c_f (orphan) s3@ c_e (current orphan) s2: c_d @@ -147,10 +147,10 @@ Also test the revset: $ hg log -r 'stack()' - 2 foo {} draft c_c - 6 foo {} draft c_d - 4 foo {} draft c_e - 5 foo {} draft c_f + 2 foo//bar {} draft c_c + 6 foo//bar {} draft c_d + 4 foo//bar {} draft c_e + 5 foo//bar {} draft c_f Case with multiple heads on the topic ------------------------------------- @@ -158,20 +158,20 @@ 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" + rebasing 4:b1913e064ca1 "c_e" + rebasing 5:18b3ff044de9 "c_f" $ hg log -G - o 8 foo {} draft c_f + o 8 foo//bar {} draft c_f | - o 7 foo {} draft c_e + o 7 foo//bar {} draft c_e | - @ 6 foo {} draft c_d + @ 6 foo//bar {} draft c_d | - o 2 foo {} draft c_c + o 2 foo//bar {} draft c_c | - o 1 other {} public c_b + o 1 double//slash {} public c_b | - o 0 other {} public c_a + o 0 double//slash {} public c_a Create the second branch @@ -187,27 +187,27 @@ $ hg add hhh $ hg commit -m c_h $ hg log -G - @ 10 foo {} draft c_h + @ 10 foo//bar {} draft c_h | - o 9 foo {} draft c_g + o 9 foo//bar {} draft c_g | - | o 8 foo {} draft c_f + | o 8 foo//bar {} draft c_f | | - | o 7 foo {} draft c_e + | o 7 foo//bar {} draft c_e |/ - o 6 foo {} draft c_d + o 6 foo//bar {} draft c_d | - o 2 foo {} draft c_c + o 2 foo//bar {} draft c_c | - o 1 other {} public c_b + o 1 double//slash {} public c_b | - o 0 other {} public c_a + o 0 double//slash {} public c_a Test output $ hg stack - ### target: foo (branch) (2 heads) + ### target: foo//bar (branch) (2 heads) s6@ c_h (current) s5: c_g s2^ c_d (base) @@ -228,30 +228,30 @@ $ hg commit --amend -m 'c_D' 4 new orphan changesets $ hg rebase -d . -s 'desc(c_g)' - rebasing 9:2ebb6e48ab8a "c_g" - rebasing 10:634f38e27a1d "c_h" + rebasing 9:8c1819a4441f "c_g" + rebasing 10:e255b784f0e9 "c_h" $ hg log -G - o 13 foo {} draft c_h + o 13 foo//bar {} draft c_h | - o 12 foo {} draft c_g + o 12 foo//bar {} draft c_g | - @ 11 foo {} draft c_D + @ 11 foo//bar {} draft c_D | - | * 8 foo {} draft c_f + | * 8 foo//bar {} draft c_f | | - | * 7 foo {} draft c_e + | * 7 foo//bar {} draft c_e | | - | x 6 foo {} draft c_d + | x 6 foo//bar {} draft c_d |/ - o 2 foo {} draft c_c + o 2 foo//bar {} draft c_c | - o 1 other {} public c_b + o 1 double//slash {} public c_b | - o 0 other {} public c_a + o 0 double//slash {} public c_a $ hg stack - ### target: foo (branch) (2 heads) + ### target: foo//bar (branch) (2 heads) s6: c_h s5: c_g s2^ c_D (base current) @@ -265,27 +265,27 @@ ---------------------------------------------------------- $ hg log --graph - o 13 foo {} draft c_h + o 13 foo//bar {} draft c_h | - o 12 foo {} draft c_g + o 12 foo//bar {} draft c_g | - @ 11 foo {} draft c_D + @ 11 foo//bar {} draft c_D | - | * 8 foo {} draft c_f + | * 8 foo//bar {} draft c_f | | - | * 7 foo {} draft c_e + | * 7 foo//bar {} draft c_e | | - | x 6 foo {} draft c_d + | x 6 foo//bar {} draft c_d |/ - o 2 foo {} draft c_c + o 2 foo//bar {} draft c_c | - o 1 other {} public c_b + o 1 double//slash {} public c_b | - o 0 other {} public c_a + o 0 double//slash {} public c_a $ hg stack - ### target: foo (branch) (2 heads) + ### target: foo//bar (branch) (2 heads) s6: c_h s5: c_g s2^ c_D (base current) @@ -296,7 +296,7 @@ s0^ c_b (base) $ hg phase --public s1 $ hg stack - ### target: foo (branch) (2 heads) + ### target: foo//bar (branch) (2 heads) s5: c_h s4: c_g s1^ c_D (base current) @@ -311,7 +311,7 @@ $ hg topic --rev s4::s5 sometopic changed topic on 2 changesets to "sometopic" $ hg stack - ### target: foo (branch) + ### target: foo//bar (branch) s3$ c_f (orphan) s2$ c_e (orphan) s1@ c_D (current)