|
1 |
|
2 This test test the low-level definition of stack, agnostic from all formatting |
|
3 |
|
4 Initial setup |
|
5 |
|
6 $ cat << EOF >> $HGRCPATH |
|
7 > [ui] |
|
8 > logtemplate = {rev} {branch} {phase} {desc|firstline}\n |
|
9 > [extensions] |
|
10 > rebase= |
|
11 > [experimental] |
|
12 > evolution=createmarkers,exchange,allowunstable |
|
13 > EOF |
|
14 |
|
15 $ hg init main |
|
16 $ cd main |
|
17 $ hg branch other |
|
18 marked working directory as branch other |
|
19 (branches are permanent and global, did you want a bookmark?) |
|
20 $ echo aaa > aaa |
|
21 $ hg add aaa |
|
22 $ hg commit -m c_a |
|
23 $ echo aaa > bbb |
|
24 $ hg add bbb |
|
25 $ hg commit -m c_b |
|
26 $ hg branch foo |
|
27 marked working directory as branch foo |
|
28 $ echo aaa > ccc |
|
29 $ hg add ccc |
|
30 $ hg commit -m c_c |
|
31 $ echo aaa > ddd |
|
32 $ hg add ddd |
|
33 $ hg commit -m c_d |
|
34 $ echo aaa > eee |
|
35 $ hg add eee |
|
36 $ hg commit -m c_e |
|
37 $ echo aaa > fff |
|
38 $ hg add fff |
|
39 $ hg commit -m c_f |
|
40 $ hg log -G |
|
41 @ 5 foo draft c_f |
|
42 | |
|
43 o 4 foo draft c_e |
|
44 | |
|
45 o 3 foo draft c_d |
|
46 | |
|
47 o 2 foo draft c_c |
|
48 | |
|
49 o 1 other draft c_b |
|
50 | |
|
51 o 0 other draft c_a |
|
52 |
|
53 |
|
54 Check that stack doesn't include public changesets |
|
55 -------------------------------------------------- |
|
56 |
|
57 $ hg up other |
|
58 0 files updated, 0 files merged, 4 files removed, 0 files unresolved |
|
59 $ hg log -G -r "stack()" |
|
60 @ 1 other draft c_b |
|
61 | |
|
62 o 0 other draft c_a |
|
63 |
|
64 $ hg phase --public 'branch("other")' |
|
65 $ hg log -G -r "stack()" |
|
66 $ hg up foo |
|
67 4 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
68 |
|
69 Simple test |
|
70 ----------- |
|
71 |
|
72 'stack()' list all changeset in the branch |
|
73 |
|
74 $ hg branch |
|
75 foo |
|
76 $ hg log -G -r "stack()" |
|
77 @ 5 foo draft c_f |
|
78 | |
|
79 o 4 foo draft c_e |
|
80 | |
|
81 o 3 foo draft c_d |
|
82 | |
|
83 o 2 foo draft c_c |
|
84 | |
|
85 ~ |
|
86 |
|
87 Case with some of the branch unstable |
|
88 ------------------------------------ |
|
89 |
|
90 $ hg up 3 |
|
91 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
92 $ echo bbb > ddd |
|
93 $ hg commit --amend |
|
94 2 new orphan changesets |
|
95 $ hg log -G |
|
96 @ 6 foo draft c_d |
|
97 | |
|
98 | * 5 foo draft c_f |
|
99 | | |
|
100 | * 4 foo draft c_e |
|
101 | | |
|
102 | x 3 foo draft c_d |
|
103 |/ |
|
104 o 2 foo draft c_c |
|
105 | |
|
106 o 1 other public c_b |
|
107 | |
|
108 o 0 other public c_a |
|
109 |
|
110 $ hg log -G -r "stack()" |
|
111 @ 6 foo draft c_d |
|
112 | |
|
113 ~ |
|
114 $ hg up -r "desc(c_e)" |
|
115 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
116 $ hg log -G -r "stack()" |
|
117 @ 4 foo draft c_e |
|
118 | |
|
119 x 3 foo draft c_d |
|
120 | |
|
121 ~ |
|
122 $ hg up -r "desc(c_d)" |
|
123 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
124 |
|
125 $ hg log -G -r "stack()" |
|
126 @ 6 foo draft c_d |
|
127 | |
|
128 ~ |
|
129 |
|
130 Case with multiple topological heads |
|
131 ------------------------------------ |
|
132 |
|
133 Make things linear again |
|
134 |
|
135 $ hg rebase -s 'desc(c_e)' -d 'desc(c_d) - obsolete()' |
|
136 rebasing 4:4f2a69f6d380 "c_e" |
|
137 rebasing 5:913c298d8b0a "c_f" |
|
138 $ hg log -G |
|
139 o 8 foo draft c_f |
|
140 | |
|
141 o 7 foo draft c_e |
|
142 | |
|
143 @ 6 foo draft c_d |
|
144 | |
|
145 o 2 foo draft c_c |
|
146 | |
|
147 o 1 other public c_b |
|
148 | |
|
149 o 0 other public c_a |
|
150 |
|
151 |
|
152 Create the second branch |
|
153 |
|
154 $ hg up 'desc(c_d)' |
|
155 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
156 $ echo aaa > ggg |
|
157 $ hg add ggg |
|
158 $ hg commit -m c_g |
|
159 created new head |
|
160 $ echo aaa > hhh |
|
161 $ hg add hhh |
|
162 $ hg commit -m c_h |
|
163 $ hg log -G |
|
164 @ 10 foo draft c_h |
|
165 | |
|
166 o 9 foo draft c_g |
|
167 | |
|
168 | o 8 foo draft c_f |
|
169 | | |
|
170 | o 7 foo draft c_e |
|
171 |/ |
|
172 o 6 foo draft c_d |
|
173 | |
|
174 o 2 foo draft c_c |
|
175 | |
|
176 o 1 other public c_b |
|
177 | |
|
178 o 0 other public c_a |
|
179 |
|
180 |
|
181 Test output |
|
182 |
|
183 $ hg log -G -r "stack(10)" |
|
184 @ 10 foo draft c_h |
|
185 | |
|
186 o 9 foo draft c_g |
|
187 | |
|
188 ~ |
|
189 $ hg log -G -r "stack(8)" |
|
190 o 8 foo draft c_f |
|
191 | |
|
192 o 7 foo draft c_e |
|
193 | |
|
194 ~ |
|
195 $ hg log -G -r "stack(head())" |
|
196 @ 10 foo draft c_h |
|
197 | |
|
198 o 9 foo draft c_g |
|
199 | |
|
200 ~ |
|
201 o 8 foo draft c_f |
|
202 | |
|
203 o 7 foo draft c_e |
|
204 | |
|
205 ~ |
|
206 Check the stack order |
|
207 $ hg log -r "first(stack())" |
|
208 10 foo draft c_h |
|
209 $ hg log -r "first(stack(10))" |
|
210 10 foo draft c_h |
|
211 $ hg log -r "first(stack(8))" |
|
212 8 foo draft c_f |
|
213 $ hg log -r "first(stack(head()))" |
|
214 8 foo draft c_f |
|
215 |
|
216 Case with multiple heads with unstability involved |
|
217 -------------------------------------------------- |
|
218 |
|
219 We amend the message to make sure the display base pick the right changeset |
|
220 |
|
221 $ hg up 'desc(c_d)' |
|
222 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
223 $ echo ccc > ddd |
|
224 $ hg commit --amend -m 'c_D' |
|
225 4 new orphan changesets |
|
226 $ hg rebase -d . -s 'desc(c_g)' |
|
227 rebasing 9:2ebb6e48ab8a "c_g" |
|
228 rebasing 10:634f38e27a1d "c_h" |
|
229 $ hg log -G |
|
230 o 13 foo draft c_h |
|
231 | |
|
232 o 12 foo draft c_g |
|
233 | |
|
234 @ 11 foo draft c_D |
|
235 | |
|
236 | * 8 foo draft c_f |
|
237 | | |
|
238 | * 7 foo draft c_e |
|
239 | | |
|
240 | x 6 foo draft c_d |
|
241 |/ |
|
242 o 2 foo draft c_c |
|
243 | |
|
244 o 1 other public c_b |
|
245 | |
|
246 o 0 other public c_a |
|
247 |
|
248 |
|
249 We should improve stack definition to also show 12 and 13 here |
|
250 $ hg log -G -r "stack()" |
|
251 @ 11 foo draft c_D |
|
252 | |
|
253 ~ |