Mercurial > evolve
comparison tests/test-stack-branch.t @ 2669:b933a8068c17
topic: add some initial support for using stack on named branch
Stack is a useful command that can make sense in other context. The current
support is hacky and awful, but we have something!
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 28 Jun 2017 02:45:57 +0200 |
parents | |
children | f5d52fa1cd55 |
comparison
equal
deleted
inserted
replaced
2668:1d2c66dc4ee3 | 2669:b933a8068c17 |
---|---|
1 | |
2 $ . "$TESTDIR/testlib/topic_setup.sh" | |
3 | |
4 Initial setup | |
5 | |
6 $ cat << EOF >> $HGRCPATH | |
7 > [ui] | |
8 > logtemplate = {rev} {branch} \{{get(namespaces, "topics")}} {phase} {desc|firstline}\n | |
9 > [experimental] | |
10 > evolution=createmarkers,exchange,allowunstable | |
11 > EOF | |
12 | |
13 $ hg init main | |
14 $ cd main | |
15 $ hg branch other | |
16 marked working directory as branch other | |
17 (branches are permanent and global, did you want a bookmark?) | |
18 $ echo aaa > aaa | |
19 $ hg add aaa | |
20 $ hg commit -m c_a | |
21 $ echo aaa > bbb | |
22 $ hg add bbb | |
23 $ hg commit -m c_b | |
24 $ hg branch foo | |
25 marked working directory as branch foo | |
26 $ echo aaa > ccc | |
27 $ hg add ccc | |
28 $ hg commit -m c_c | |
29 $ echo aaa > ddd | |
30 $ hg add ddd | |
31 $ hg commit -m c_d | |
32 $ echo aaa > eee | |
33 $ hg add eee | |
34 $ hg commit -m c_e | |
35 $ echo aaa > fff | |
36 $ hg add fff | |
37 $ hg commit -m c_f | |
38 $ hg log -G | |
39 @ 5 foo {} draft c_f | |
40 | | |
41 o 4 foo {} draft c_e | |
42 | | |
43 o 3 foo {} draft c_d | |
44 | | |
45 o 2 foo {} draft c_c | |
46 | | |
47 o 1 other {} draft c_b | |
48 | | |
49 o 0 other {} draft c_a | |
50 | |
51 | |
52 Check that topic without any parent does not crash --list | |
53 --------------------------------------------------------- | |
54 | |
55 $ hg up other | |
56 0 files updated, 0 files merged, 4 files removed, 0 files unresolved | |
57 $ hg stack | |
58 ### topic: None | |
59 ### branch: other | |
60 b2@ c_b (current) | |
61 b1: c_a | |
62 $ hg phase --public 'branch("other")' | |
63 $ hg up foo | |
64 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
65 | |
66 Simple test | |
67 ----------- | |
68 | |
69 'hg stack' list all changeset in the topic | |
70 | |
71 $ hg branch | |
72 foo | |
73 $ hg stack | |
74 ### topic: None | |
75 ### branch: foo | |
76 b4@ c_f (current) | |
77 b3: c_e | |
78 b2: c_d | |
79 b1: c_c | |
80 ^ c_b | |
81 | |
82 Test "t#" reference | |
83 ------------------- | |
84 | |
85 $ hg up b2 | |
86 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
87 $ hg up foo | |
88 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
89 $ hg up b42 | |
90 abort: cannot resolve "b42": branch "foo" has only 4 changesets | |
91 [255] | |
92 $ hg up b2 | |
93 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
94 $ hg summary | |
95 parent: 3:f61adbacd17a | |
96 c_d | |
97 branch: foo | |
98 commit: (clean) | |
99 update: 2 new changesets (update) | |
100 phases: 4 draft | |
101 | |
102 Case with some of the branch unstable | |
103 ------------------------------------ | |
104 | |
105 $ echo bbb > ddd | |
106 $ hg commit --amend | |
107 $ hg log -G | |
108 @ 7 foo {} draft c_d | |
109 | | |
110 | o 5 foo {} draft c_f | |
111 | | | |
112 | o 4 foo {} draft c_e | |
113 | | | |
114 | x 3 foo {} draft c_d | |
115 |/ | |
116 o 2 foo {} draft c_c | |
117 | | |
118 o 1 other {} public c_b | |
119 | | |
120 o 0 other {} public c_a | |
121 | |
122 $ hg stack | |
123 ### topic: None | |
124 ### branch: foo | |
125 b4$ c_f (unstable) | |
126 b3$ c_e (unstable) | |
127 b2@ c_d (current) | |
128 b1: c_c | |
129 ^ c_b | |
130 $ hg up b3 | |
131 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
132 $ hg stack | |
133 ### topic: None | |
134 ### branch: foo | |
135 b4$ c_f (unstable) | |
136 b3$ c_e (current unstable) | |
137 b2: c_d | |
138 b1: c_c | |
139 ^ c_b | |
140 $ hg up b2 | |
141 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
142 | |
143 Also test the revset: | |
144 | |
145 $ hg log -r 'stack()' | |
146 abort: no active topic to list | |
147 [255] | |
148 | |
149 Case with multiple heads on the topic | |
150 ------------------------------------- | |
151 | |
152 Make things linear again | |
153 | |
154 $ hg rebase -s 'desc(c_e)' -d 'desc(c_d) - obsolete()' | |
155 rebasing 4:4f2a69f6d380 "c_e" | |
156 rebasing 5:913c298d8b0a "c_f" | |
157 $ hg log -G | |
158 o 9 foo {} draft c_f | |
159 | | |
160 o 8 foo {} draft c_e | |
161 | | |
162 @ 7 foo {} draft c_d | |
163 | | |
164 o 2 foo {} draft c_c | |
165 | | |
166 o 1 other {} public c_b | |
167 | | |
168 o 0 other {} public c_a | |
169 | |
170 | |
171 Create the second branch | |
172 | |
173 $ hg up 'desc(c_d)' | |
174 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
175 $ echo aaa > ggg | |
176 $ hg add ggg | |
177 $ hg commit -m c_g | |
178 created new head | |
179 $ echo aaa > hhh | |
180 $ hg add hhh | |
181 $ hg commit -m c_h | |
182 $ hg log -G | |
183 @ 11 foo {} draft c_h | |
184 | | |
185 o 10 foo {} draft c_g | |
186 | | |
187 | o 9 foo {} draft c_f | |
188 | | | |
189 | o 8 foo {} draft c_e | |
190 |/ | |
191 o 7 foo {} draft c_d | |
192 | | |
193 o 2 foo {} draft c_c | |
194 | | |
195 o 1 other {} public c_b | |
196 | | |
197 o 0 other {} public c_a | |
198 | |
199 | |
200 Test output | |
201 | |
202 $ hg stack | |
203 ### topic: None (2 heads) | |
204 ### branch: foo | |
205 b6: c_f | |
206 b5: c_e | |
207 b2^ c_d (base) | |
208 b4@ c_h (current) | |
209 b3: c_g | |
210 b2: c_d | |
211 b1: c_c | |
212 ^ c_b | |
213 | |
214 Case with multiple heads on the topic with unstability involved | |
215 --------------------------------------------------------------- | |
216 | |
217 We amend the message to make sure the display base pick the right changeset | |
218 | |
219 $ hg up 'desc(c_d)' | |
220 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
221 $ echo ccc > ddd | |
222 $ hg commit --amend -m 'c_D' | |
223 $ hg rebase -d . -s 'desc(c_g)' | |
224 rebasing 10:2ebb6e48ab8a "c_g" | |
225 rebasing 11:634f38e27a1d "c_h" | |
226 $ hg log -G | |
227 o 15 foo {} draft c_h | |
228 | | |
229 o 14 foo {} draft c_g | |
230 | | |
231 @ 13 foo {} draft c_D | |
232 | | |
233 | o 9 foo {} draft c_f | |
234 | | | |
235 | o 8 foo {} draft c_e | |
236 | | | |
237 | x 7 foo {} draft c_d | |
238 |/ | |
239 o 2 foo {} draft c_c | |
240 | | |
241 o 1 other {} public c_b | |
242 | | |
243 o 0 other {} public c_a | |
244 | |
245 | |
246 $ hg stack | |
247 ### topic: None (2 heads) | |
248 ### branch: foo | |
249 b6$ c_f (unstable) | |
250 b5$ c_e (unstable) | |
251 b2^ c_D (base) | |
252 b4: c_h | |
253 b3: c_g | |
254 b2@ c_D (current) | |
255 b1: c_c | |
256 ^ c_b | |
257 |