Show More
@@ -0,0 +1,108 b'' | |||||
|
1 | #!/bin/sh | |||
|
2 | ||||
|
3 | hg init a | |||
|
4 | cd a | |||
|
5 | echo 'root' >root | |||
|
6 | hg add root | |||
|
7 | hg commit -d '0 0' -u test -m "Adding root node" | |||
|
8 | hg heads | |||
|
9 | echo '-------' | |||
|
10 | hg heads . | |||
|
11 | ||||
|
12 | echo '=======' | |||
|
13 | echo 'a' >a | |||
|
14 | hg add a | |||
|
15 | hg branch a | |||
|
16 | hg commit -d '1 0' -u test -m "Adding a branch" | |||
|
17 | hg heads | |||
|
18 | echo '-------' | |||
|
19 | hg heads . | |||
|
20 | ||||
|
21 | echo '=======' | |||
|
22 | hg update -C 0 | |||
|
23 | echo 'b' >b | |||
|
24 | hg add b | |||
|
25 | hg branch b | |||
|
26 | hg commit -d '2 0' -u test -m "Adding b branch" | |||
|
27 | hg heads | |||
|
28 | echo '-------' | |||
|
29 | hg heads . | |||
|
30 | ||||
|
31 | echo '=======' | |||
|
32 | echo 'bh1' >bh1 | |||
|
33 | hg add bh1 | |||
|
34 | hg commit -d '3 0' -u test -m "Adding b branch head 1" | |||
|
35 | hg heads | |||
|
36 | echo '-------' | |||
|
37 | hg heads . | |||
|
38 | ||||
|
39 | echo '=======' | |||
|
40 | hg update -C 2 | |||
|
41 | echo 'bh2' >bh2 | |||
|
42 | hg add bh2 | |||
|
43 | hg commit -d '4 0' -u test -m "Adding b branch head 2" | |||
|
44 | hg heads | |||
|
45 | echo '-------' | |||
|
46 | hg heads . | |||
|
47 | ||||
|
48 | echo '=======' | |||
|
49 | hg update -C 2 | |||
|
50 | echo 'bh3' >bh3 | |||
|
51 | hg add bh3 | |||
|
52 | hg commit -d '5 0' -u test -m "Adding b branch head 3" | |||
|
53 | hg heads | |||
|
54 | echo '-------' | |||
|
55 | hg heads . | |||
|
56 | ||||
|
57 | echo '=======' | |||
|
58 | hg merge 4 | |||
|
59 | hg commit -d '6 0' -u test -m "Merging b branch head 2 and b branch head 3" | |||
|
60 | hg heads | |||
|
61 | echo '-------' | |||
|
62 | hg heads . | |||
|
63 | ||||
|
64 | echo '=======' | |||
|
65 | echo 'c' >c | |||
|
66 | hg add c | |||
|
67 | hg branch c | |||
|
68 | hg commit -d '7 0' -u test -m "Adding c branch" | |||
|
69 | hg heads | |||
|
70 | echo '-------' | |||
|
71 | hg heads . | |||
|
72 | ||||
|
73 | echo '=======' | |||
|
74 | hg heads -r 3 . | |||
|
75 | echo $? | |||
|
76 | echo '-------' | |||
|
77 | hg heads -r 2 . | |||
|
78 | echo $? | |||
|
79 | echo '-------' | |||
|
80 | hg update -C 4 | |||
|
81 | echo $? | |||
|
82 | echo '-------' | |||
|
83 | hg heads -r 3 . | |||
|
84 | echo $? | |||
|
85 | echo '-------' | |||
|
86 | hg heads -r 2 . | |||
|
87 | echo $? | |||
|
88 | echo '-------' | |||
|
89 | hg heads -r 7 . | |||
|
90 | echo $? | |||
|
91 | ||||
|
92 | echo '=======' | |||
|
93 | for i in 0 1 2 3 4 5 6 7; do | |||
|
94 | hg update -C "$i" | |||
|
95 | hg heads | |||
|
96 | echo '-------' | |||
|
97 | hg heads . | |||
|
98 | echo '-------' | |||
|
99 | done | |||
|
100 | ||||
|
101 | echo '=======' | |||
|
102 | for i in a b c z; do | |||
|
103 | hg heads "$i" | |||
|
104 | echo '-------' | |||
|
105 | done | |||
|
106 | ||||
|
107 | echo '=======' | |||
|
108 | hg heads 0 1 2 3 4 5 6 7 |
This diff has been collapsed as it changes many lines, (608 lines changed) Show them Hide them | |||||
@@ -0,0 +1,608 b'' | |||||
|
1 | changeset: 0:19709c5a4e75 | |||
|
2 | tag: tip | |||
|
3 | user: test | |||
|
4 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
5 | summary: Adding root node | |||
|
6 | ||||
|
7 | ------- | |||
|
8 | changeset: 0:19709c5a4e75 | |||
|
9 | tag: tip | |||
|
10 | user: test | |||
|
11 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
12 | summary: Adding root node | |||
|
13 | ||||
|
14 | ======= | |||
|
15 | marked working directory as branch a | |||
|
16 | changeset: 1:dd6b440dd85a | |||
|
17 | branch: a | |||
|
18 | tag: tip | |||
|
19 | user: test | |||
|
20 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
21 | summary: Adding a branch | |||
|
22 | ||||
|
23 | ------- | |||
|
24 | changeset: 1:dd6b440dd85a | |||
|
25 | branch: a | |||
|
26 | tag: tip | |||
|
27 | user: test | |||
|
28 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
29 | summary: Adding a branch | |||
|
30 | ||||
|
31 | ======= | |||
|
32 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
|
33 | marked working directory as branch b | |||
|
34 | changeset: 2:ac22033332d1 | |||
|
35 | branch: b | |||
|
36 | tag: tip | |||
|
37 | parent: 0:19709c5a4e75 | |||
|
38 | user: test | |||
|
39 | date: Thu Jan 01 00:00:02 1970 +0000 | |||
|
40 | summary: Adding b branch | |||
|
41 | ||||
|
42 | changeset: 1:dd6b440dd85a | |||
|
43 | branch: a | |||
|
44 | user: test | |||
|
45 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
46 | summary: Adding a branch | |||
|
47 | ||||
|
48 | ------- | |||
|
49 | changeset: 2:ac22033332d1 | |||
|
50 | branch: b | |||
|
51 | tag: tip | |||
|
52 | parent: 0:19709c5a4e75 | |||
|
53 | user: test | |||
|
54 | date: Thu Jan 01 00:00:02 1970 +0000 | |||
|
55 | summary: Adding b branch | |||
|
56 | ||||
|
57 | ======= | |||
|
58 | changeset: 3:aee39cd168d0 | |||
|
59 | branch: b | |||
|
60 | tag: tip | |||
|
61 | user: test | |||
|
62 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
63 | summary: Adding b branch head 1 | |||
|
64 | ||||
|
65 | changeset: 1:dd6b440dd85a | |||
|
66 | branch: a | |||
|
67 | user: test | |||
|
68 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
69 | summary: Adding a branch | |||
|
70 | ||||
|
71 | ------- | |||
|
72 | changeset: 3:aee39cd168d0 | |||
|
73 | branch: b | |||
|
74 | tag: tip | |||
|
75 | user: test | |||
|
76 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
77 | summary: Adding b branch head 1 | |||
|
78 | ||||
|
79 | ======= | |||
|
80 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
|
81 | changeset: 4:22df7444f7c1 | |||
|
82 | branch: b | |||
|
83 | tag: tip | |||
|
84 | parent: 2:ac22033332d1 | |||
|
85 | user: test | |||
|
86 | date: Thu Jan 01 00:00:04 1970 +0000 | |||
|
87 | summary: Adding b branch head 2 | |||
|
88 | ||||
|
89 | changeset: 3:aee39cd168d0 | |||
|
90 | branch: b | |||
|
91 | user: test | |||
|
92 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
93 | summary: Adding b branch head 1 | |||
|
94 | ||||
|
95 | changeset: 1:dd6b440dd85a | |||
|
96 | branch: a | |||
|
97 | user: test | |||
|
98 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
99 | summary: Adding a branch | |||
|
100 | ||||
|
101 | ------- | |||
|
102 | changeset: 4:22df7444f7c1 | |||
|
103 | branch: b | |||
|
104 | tag: tip | |||
|
105 | parent: 2:ac22033332d1 | |||
|
106 | user: test | |||
|
107 | date: Thu Jan 01 00:00:04 1970 +0000 | |||
|
108 | summary: Adding b branch head 2 | |||
|
109 | ||||
|
110 | changeset: 3:aee39cd168d0 | |||
|
111 | branch: b | |||
|
112 | user: test | |||
|
113 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
114 | summary: Adding b branch head 1 | |||
|
115 | ||||
|
116 | ======= | |||
|
117 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
|
118 | changeset: 5:0d57af4f9583 | |||
|
119 | branch: b | |||
|
120 | tag: tip | |||
|
121 | parent: 2:ac22033332d1 | |||
|
122 | user: test | |||
|
123 | date: Thu Jan 01 00:00:05 1970 +0000 | |||
|
124 | summary: Adding b branch head 3 | |||
|
125 | ||||
|
126 | changeset: 4:22df7444f7c1 | |||
|
127 | branch: b | |||
|
128 | parent: 2:ac22033332d1 | |||
|
129 | user: test | |||
|
130 | date: Thu Jan 01 00:00:04 1970 +0000 | |||
|
131 | summary: Adding b branch head 2 | |||
|
132 | ||||
|
133 | changeset: 3:aee39cd168d0 | |||
|
134 | branch: b | |||
|
135 | user: test | |||
|
136 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
137 | summary: Adding b branch head 1 | |||
|
138 | ||||
|
139 | changeset: 1:dd6b440dd85a | |||
|
140 | branch: a | |||
|
141 | user: test | |||
|
142 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
143 | summary: Adding a branch | |||
|
144 | ||||
|
145 | ------- | |||
|
146 | changeset: 5:0d57af4f9583 | |||
|
147 | branch: b | |||
|
148 | tag: tip | |||
|
149 | parent: 2:ac22033332d1 | |||
|
150 | user: test | |||
|
151 | date: Thu Jan 01 00:00:05 1970 +0000 | |||
|
152 | summary: Adding b branch head 3 | |||
|
153 | ||||
|
154 | changeset: 4:22df7444f7c1 | |||
|
155 | branch: b | |||
|
156 | parent: 2:ac22033332d1 | |||
|
157 | user: test | |||
|
158 | date: Thu Jan 01 00:00:04 1970 +0000 | |||
|
159 | summary: Adding b branch head 2 | |||
|
160 | ||||
|
161 | changeset: 3:aee39cd168d0 | |||
|
162 | branch: b | |||
|
163 | user: test | |||
|
164 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
165 | summary: Adding b branch head 1 | |||
|
166 | ||||
|
167 | ======= | |||
|
168 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
169 | (branch merge, don't forget to commit) | |||
|
170 | changeset: 6:00432327d822 | |||
|
171 | branch: b | |||
|
172 | tag: tip | |||
|
173 | parent: 5:0d57af4f9583 | |||
|
174 | parent: 4:22df7444f7c1 | |||
|
175 | user: test | |||
|
176 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
177 | summary: Merging b branch head 2 and b branch head 3 | |||
|
178 | ||||
|
179 | changeset: 3:aee39cd168d0 | |||
|
180 | branch: b | |||
|
181 | user: test | |||
|
182 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
183 | summary: Adding b branch head 1 | |||
|
184 | ||||
|
185 | changeset: 1:dd6b440dd85a | |||
|
186 | branch: a | |||
|
187 | user: test | |||
|
188 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
189 | summary: Adding a branch | |||
|
190 | ||||
|
191 | ------- | |||
|
192 | changeset: 6:00432327d822 | |||
|
193 | branch: b | |||
|
194 | tag: tip | |||
|
195 | parent: 5:0d57af4f9583 | |||
|
196 | parent: 4:22df7444f7c1 | |||
|
197 | user: test | |||
|
198 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
199 | summary: Merging b branch head 2 and b branch head 3 | |||
|
200 | ||||
|
201 | changeset: 3:aee39cd168d0 | |||
|
202 | branch: b | |||
|
203 | user: test | |||
|
204 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
205 | summary: Adding b branch head 1 | |||
|
206 | ||||
|
207 | ======= | |||
|
208 | marked working directory as branch c | |||
|
209 | changeset: 7:9fb091bb9835 | |||
|
210 | branch: c | |||
|
211 | tag: tip | |||
|
212 | user: test | |||
|
213 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
214 | summary: Adding c branch | |||
|
215 | ||||
|
216 | changeset: 3:aee39cd168d0 | |||
|
217 | branch: b | |||
|
218 | user: test | |||
|
219 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
220 | summary: Adding b branch head 1 | |||
|
221 | ||||
|
222 | changeset: 1:dd6b440dd85a | |||
|
223 | branch: a | |||
|
224 | user: test | |||
|
225 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
226 | summary: Adding a branch | |||
|
227 | ||||
|
228 | ------- | |||
|
229 | changeset: 7:9fb091bb9835 | |||
|
230 | branch: c | |||
|
231 | tag: tip | |||
|
232 | user: test | |||
|
233 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
234 | summary: Adding c branch | |||
|
235 | ||||
|
236 | ======= | |||
|
237 | No changes on branch c (the branch of revision .) are reachable from revision 3 | |||
|
238 | 1 | |||
|
239 | ------- | |||
|
240 | changeset: 7:9fb091bb9835 | |||
|
241 | branch: c | |||
|
242 | tag: tip | |||
|
243 | user: test | |||
|
244 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
245 | summary: Adding c branch | |||
|
246 | ||||
|
247 | 0 | |||
|
248 | ------- | |||
|
249 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |||
|
250 | 0 | |||
|
251 | ------- | |||
|
252 | changeset: 3:aee39cd168d0 | |||
|
253 | branch: b | |||
|
254 | user: test | |||
|
255 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
256 | summary: Adding b branch head 1 | |||
|
257 | ||||
|
258 | 0 | |||
|
259 | ------- | |||
|
260 | changeset: 3:aee39cd168d0 | |||
|
261 | branch: b | |||
|
262 | user: test | |||
|
263 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
264 | summary: Adding b branch head 1 | |||
|
265 | ||||
|
266 | changeset: 6:00432327d822 | |||
|
267 | branch: b | |||
|
268 | parent: 5:0d57af4f9583 | |||
|
269 | parent: 4:22df7444f7c1 | |||
|
270 | user: test | |||
|
271 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
272 | summary: Merging b branch head 2 and b branch head 3 | |||
|
273 | ||||
|
274 | 0 | |||
|
275 | ------- | |||
|
276 | No changes on branch b (the branch of revision .) are reachable from revision 7 | |||
|
277 | 1 | |||
|
278 | ======= | |||
|
279 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |||
|
280 | changeset: 7:9fb091bb9835 | |||
|
281 | branch: c | |||
|
282 | tag: tip | |||
|
283 | user: test | |||
|
284 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
285 | summary: Adding c branch | |||
|
286 | ||||
|
287 | changeset: 3:aee39cd168d0 | |||
|
288 | branch: b | |||
|
289 | user: test | |||
|
290 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
291 | summary: Adding b branch head 1 | |||
|
292 | ||||
|
293 | changeset: 1:dd6b440dd85a | |||
|
294 | branch: a | |||
|
295 | user: test | |||
|
296 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
297 | summary: Adding a branch | |||
|
298 | ||||
|
299 | ------- | |||
|
300 | changeset: 0:19709c5a4e75 | |||
|
301 | user: test | |||
|
302 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
303 | summary: Adding root node | |||
|
304 | ||||
|
305 | ------- | |||
|
306 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
307 | changeset: 7:9fb091bb9835 | |||
|
308 | branch: c | |||
|
309 | tag: tip | |||
|
310 | user: test | |||
|
311 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
312 | summary: Adding c branch | |||
|
313 | ||||
|
314 | changeset: 3:aee39cd168d0 | |||
|
315 | branch: b | |||
|
316 | user: test | |||
|
317 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
318 | summary: Adding b branch head 1 | |||
|
319 | ||||
|
320 | changeset: 1:dd6b440dd85a | |||
|
321 | branch: a | |||
|
322 | user: test | |||
|
323 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
324 | summary: Adding a branch | |||
|
325 | ||||
|
326 | ------- | |||
|
327 | changeset: 1:dd6b440dd85a | |||
|
328 | branch: a | |||
|
329 | user: test | |||
|
330 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
331 | summary: Adding a branch | |||
|
332 | ||||
|
333 | ------- | |||
|
334 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
|
335 | changeset: 7:9fb091bb9835 | |||
|
336 | branch: c | |||
|
337 | tag: tip | |||
|
338 | user: test | |||
|
339 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
340 | summary: Adding c branch | |||
|
341 | ||||
|
342 | changeset: 3:aee39cd168d0 | |||
|
343 | branch: b | |||
|
344 | user: test | |||
|
345 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
346 | summary: Adding b branch head 1 | |||
|
347 | ||||
|
348 | changeset: 1:dd6b440dd85a | |||
|
349 | branch: a | |||
|
350 | user: test | |||
|
351 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
352 | summary: Adding a branch | |||
|
353 | ||||
|
354 | ------- | |||
|
355 | changeset: 6:00432327d822 | |||
|
356 | branch: b | |||
|
357 | parent: 5:0d57af4f9583 | |||
|
358 | parent: 4:22df7444f7c1 | |||
|
359 | user: test | |||
|
360 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
361 | summary: Merging b branch head 2 and b branch head 3 | |||
|
362 | ||||
|
363 | changeset: 3:aee39cd168d0 | |||
|
364 | branch: b | |||
|
365 | user: test | |||
|
366 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
367 | summary: Adding b branch head 1 | |||
|
368 | ||||
|
369 | ------- | |||
|
370 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
371 | changeset: 7:9fb091bb9835 | |||
|
372 | branch: c | |||
|
373 | tag: tip | |||
|
374 | user: test | |||
|
375 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
376 | summary: Adding c branch | |||
|
377 | ||||
|
378 | changeset: 3:aee39cd168d0 | |||
|
379 | branch: b | |||
|
380 | user: test | |||
|
381 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
382 | summary: Adding b branch head 1 | |||
|
383 | ||||
|
384 | changeset: 1:dd6b440dd85a | |||
|
385 | branch: a | |||
|
386 | user: test | |||
|
387 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
388 | summary: Adding a branch | |||
|
389 | ||||
|
390 | ------- | |||
|
391 | changeset: 6:00432327d822 | |||
|
392 | branch: b | |||
|
393 | parent: 5:0d57af4f9583 | |||
|
394 | parent: 4:22df7444f7c1 | |||
|
395 | user: test | |||
|
396 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
397 | summary: Merging b branch head 2 and b branch head 3 | |||
|
398 | ||||
|
399 | changeset: 3:aee39cd168d0 | |||
|
400 | branch: b | |||
|
401 | user: test | |||
|
402 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
403 | summary: Adding b branch head 1 | |||
|
404 | ||||
|
405 | ------- | |||
|
406 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
|
407 | changeset: 7:9fb091bb9835 | |||
|
408 | branch: c | |||
|
409 | tag: tip | |||
|
410 | user: test | |||
|
411 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
412 | summary: Adding c branch | |||
|
413 | ||||
|
414 | changeset: 3:aee39cd168d0 | |||
|
415 | branch: b | |||
|
416 | user: test | |||
|
417 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
418 | summary: Adding b branch head 1 | |||
|
419 | ||||
|
420 | changeset: 1:dd6b440dd85a | |||
|
421 | branch: a | |||
|
422 | user: test | |||
|
423 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
424 | summary: Adding a branch | |||
|
425 | ||||
|
426 | ------- | |||
|
427 | changeset: 6:00432327d822 | |||
|
428 | branch: b | |||
|
429 | parent: 5:0d57af4f9583 | |||
|
430 | parent: 4:22df7444f7c1 | |||
|
431 | user: test | |||
|
432 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
433 | summary: Merging b branch head 2 and b branch head 3 | |||
|
434 | ||||
|
435 | changeset: 3:aee39cd168d0 | |||
|
436 | branch: b | |||
|
437 | user: test | |||
|
438 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
439 | summary: Adding b branch head 1 | |||
|
440 | ||||
|
441 | ------- | |||
|
442 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
|
443 | changeset: 7:9fb091bb9835 | |||
|
444 | branch: c | |||
|
445 | tag: tip | |||
|
446 | user: test | |||
|
447 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
448 | summary: Adding c branch | |||
|
449 | ||||
|
450 | changeset: 3:aee39cd168d0 | |||
|
451 | branch: b | |||
|
452 | user: test | |||
|
453 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
454 | summary: Adding b branch head 1 | |||
|
455 | ||||
|
456 | changeset: 1:dd6b440dd85a | |||
|
457 | branch: a | |||
|
458 | user: test | |||
|
459 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
460 | summary: Adding a branch | |||
|
461 | ||||
|
462 | ------- | |||
|
463 | changeset: 6:00432327d822 | |||
|
464 | branch: b | |||
|
465 | parent: 5:0d57af4f9583 | |||
|
466 | parent: 4:22df7444f7c1 | |||
|
467 | user: test | |||
|
468 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
469 | summary: Merging b branch head 2 and b branch head 3 | |||
|
470 | ||||
|
471 | changeset: 3:aee39cd168d0 | |||
|
472 | branch: b | |||
|
473 | user: test | |||
|
474 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
475 | summary: Adding b branch head 1 | |||
|
476 | ||||
|
477 | ------- | |||
|
478 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
479 | changeset: 7:9fb091bb9835 | |||
|
480 | branch: c | |||
|
481 | tag: tip | |||
|
482 | user: test | |||
|
483 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
484 | summary: Adding c branch | |||
|
485 | ||||
|
486 | changeset: 3:aee39cd168d0 | |||
|
487 | branch: b | |||
|
488 | user: test | |||
|
489 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
490 | summary: Adding b branch head 1 | |||
|
491 | ||||
|
492 | changeset: 1:dd6b440dd85a | |||
|
493 | branch: a | |||
|
494 | user: test | |||
|
495 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
496 | summary: Adding a branch | |||
|
497 | ||||
|
498 | ------- | |||
|
499 | changeset: 6:00432327d822 | |||
|
500 | branch: b | |||
|
501 | parent: 5:0d57af4f9583 | |||
|
502 | parent: 4:22df7444f7c1 | |||
|
503 | user: test | |||
|
504 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
505 | summary: Merging b branch head 2 and b branch head 3 | |||
|
506 | ||||
|
507 | changeset: 3:aee39cd168d0 | |||
|
508 | branch: b | |||
|
509 | user: test | |||
|
510 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
511 | summary: Adding b branch head 1 | |||
|
512 | ||||
|
513 | ------- | |||
|
514 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
515 | changeset: 7:9fb091bb9835 | |||
|
516 | branch: c | |||
|
517 | tag: tip | |||
|
518 | user: test | |||
|
519 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
520 | summary: Adding c branch | |||
|
521 | ||||
|
522 | changeset: 3:aee39cd168d0 | |||
|
523 | branch: b | |||
|
524 | user: test | |||
|
525 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
526 | summary: Adding b branch head 1 | |||
|
527 | ||||
|
528 | changeset: 1:dd6b440dd85a | |||
|
529 | branch: a | |||
|
530 | user: test | |||
|
531 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
532 | summary: Adding a branch | |||
|
533 | ||||
|
534 | ------- | |||
|
535 | changeset: 7:9fb091bb9835 | |||
|
536 | branch: c | |||
|
537 | tag: tip | |||
|
538 | user: test | |||
|
539 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
540 | summary: Adding c branch | |||
|
541 | ||||
|
542 | ------- | |||
|
543 | ======= | |||
|
544 | changeset: 1:dd6b440dd85a | |||
|
545 | branch: a | |||
|
546 | user: test | |||
|
547 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
548 | summary: Adding a branch | |||
|
549 | ||||
|
550 | ------- | |||
|
551 | changeset: 6:00432327d822 | |||
|
552 | branch: b | |||
|
553 | parent: 5:0d57af4f9583 | |||
|
554 | parent: 4:22df7444f7c1 | |||
|
555 | user: test | |||
|
556 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
557 | summary: Merging b branch head 2 and b branch head 3 | |||
|
558 | ||||
|
559 | changeset: 3:aee39cd168d0 | |||
|
560 | branch: b | |||
|
561 | user: test | |||
|
562 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
563 | summary: Adding b branch head 1 | |||
|
564 | ||||
|
565 | ------- | |||
|
566 | changeset: 7:9fb091bb9835 | |||
|
567 | branch: c | |||
|
568 | tag: tip | |||
|
569 | user: test | |||
|
570 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
571 | summary: Adding c branch | |||
|
572 | ||||
|
573 | ------- | |||
|
574 | abort: unknown revision 'z'! | |||
|
575 | ------- | |||
|
576 | ======= | |||
|
577 | changeset: 0:19709c5a4e75 | |||
|
578 | user: test | |||
|
579 | date: Thu Jan 01 00:00:00 1970 +0000 | |||
|
580 | summary: Adding root node | |||
|
581 | ||||
|
582 | changeset: 1:dd6b440dd85a | |||
|
583 | branch: a | |||
|
584 | user: test | |||
|
585 | date: Thu Jan 01 00:00:01 1970 +0000 | |||
|
586 | summary: Adding a branch | |||
|
587 | ||||
|
588 | changeset: 6:00432327d822 | |||
|
589 | branch: b | |||
|
590 | parent: 5:0d57af4f9583 | |||
|
591 | parent: 4:22df7444f7c1 | |||
|
592 | user: test | |||
|
593 | date: Thu Jan 01 00:00:06 1970 +0000 | |||
|
594 | summary: Merging b branch head 2 and b branch head 3 | |||
|
595 | ||||
|
596 | changeset: 3:aee39cd168d0 | |||
|
597 | branch: b | |||
|
598 | user: test | |||
|
599 | date: Thu Jan 01 00:00:03 1970 +0000 | |||
|
600 | summary: Adding b branch head 1 | |||
|
601 | ||||
|
602 | changeset: 7:9fb091bb9835 | |||
|
603 | branch: c | |||
|
604 | tag: tip | |||
|
605 | user: test | |||
|
606 | date: Thu Jan 01 00:00:07 1970 +0000 | |||
|
607 | summary: Adding c branch | |||
|
608 |
@@ -1206,19 +1206,51 b' def grep(ui, repo, pattern, *pats, **opt' | |||||
1206 | found = display(fn, rev, {}, state) or found |
|
1206 | found = display(fn, rev, {}, state) or found | |
1207 | return (not found and 1) or 0 |
|
1207 | return (not found and 1) or 0 | |
1208 |
|
1208 | |||
1209 | def heads(ui, repo, **opts): |
|
1209 | def heads(ui, repo, *branchrevs, **opts): | |
1210 | """show current repository heads |
|
1210 | """show current repository heads or show branch heads | |
1211 |
|
1211 | |||
1212 |
|
|
1212 | With no arguments, show all repository head changesets. | |
1213 |
|
1213 | |||
1214 | Repository "heads" are changesets that don't have children |
|
1214 | If branch or revisions names are given this will show the heads of | |
|
1215 | the specified branches or the branches those revisions are tagged | |||
|
1216 | with. | |||
|
1217 | ||||
|
1218 | Repository "heads" are changesets that don't have child | |||
1215 | changesets. They are where development generally takes place and |
|
1219 | changesets. They are where development generally takes place and | |
1216 | are the usual targets for update and merge operations. |
|
1220 | are the usual targets for update and merge operations. | |
|
1221 | ||||
|
1222 | Branch heads are changesets that have a given branch tag, but have | |||
|
1223 | no child changesets with that tag. They are usually where | |||
|
1224 | development on the given branch takes place. | |||
1217 | """ |
|
1225 | """ | |
1218 | if opts['rev']: |
|
1226 | if opts['rev']: | |
1219 |
|
|
1227 | start = repo.lookup(opts['rev']) | |
|
1228 | else: | |||
|
1229 | start = None | |||
|
1230 | if not branchrevs: | |||
|
1231 | # Assume we're looking repo-wide heads if no revs were specified. | |||
|
1232 | heads = repo.heads(start) | |||
1220 | else: |
|
1233 | else: | |
1221 |
heads = |
|
1234 | heads = [] | |
|
1235 | visitedset = set() | |||
|
1236 | displayer = cmdutil.show_changeset(ui, repo, opts) | |||
|
1237 | for branchrev in branchrevs: | |||
|
1238 | branch = repo.changectx(branchrev).branch() | |||
|
1239 | if branch in visitedset: | |||
|
1240 | continue | |||
|
1241 | visitedset.add(branch) | |||
|
1242 | bheads = repo.branchheads(branch, start) | |||
|
1243 | if not bheads: | |||
|
1244 | if branch != branchrev: | |||
|
1245 | ui.warn(_("no changes on branch %s containing %s are " | |||
|
1246 | "reachable from %s\n") | |||
|
1247 | % (branch, branchrev, opts['rev'])) | |||
|
1248 | else: | |||
|
1249 | ui.warn(_("no changes on branch %s are reachable from %s\n") | |||
|
1250 | % (branch, opts['rev'])) | |||
|
1251 | heads.extend(bheads) | |||
|
1252 | if not heads: | |||
|
1253 | return 1 | |||
1222 | displayer = cmdutil.show_changeset(ui, repo, opts) |
|
1254 | displayer = cmdutil.show_changeset(ui, repo, opts) | |
1223 | for n in heads: |
|
1255 | for n in heads: | |
1224 | displayer.show(changenode=n) |
|
1256 | displayer.show(changenode=n) | |
@@ -2790,7 +2822,7 b' table = {' | |||||
2790 | [('', 'style', '', _('display using template map file')), |
|
2822 | [('', 'style', '', _('display using template map file')), | |
2791 | ('r', 'rev', '', _('show only heads which are descendants of rev')), |
|
2823 | ('r', 'rev', '', _('show only heads which are descendants of rev')), | |
2792 | ('', 'template', '', _('display with template'))], |
|
2824 | ('', 'template', '', _('display with template'))], | |
2793 | _('hg heads [-r REV]')), |
|
2825 | _('hg heads [-r REV] [REV]...')), | |
2794 | "help": (help_, [], _('hg help [COMMAND]')), |
|
2826 | "help": (help_, [], _('hg help [COMMAND]')), | |
2795 | "identify|id": (identify, [], _('hg identify')), |
|
2827 | "identify|id": (identify, [], _('hg identify')), | |
2796 | "import|patch": |
|
2828 | "import|patch": |
@@ -1019,6 +1019,52 b' class localrepository(repo.repository):' | |||||
1019 | heads.sort() |
|
1019 | heads.sort() | |
1020 | return [n for (r, n) in heads] |
|
1020 | return [n for (r, n) in heads] | |
1021 |
|
1021 | |||
|
1022 | def branchheads(self, branch, start=None): | |||
|
1023 | branches = self.branchtags() | |||
|
1024 | if branch not in branches: | |||
|
1025 | return [] | |||
|
1026 | # The basic algorithm is this: | |||
|
1027 | # | |||
|
1028 | # Start from the branch tip since there are no later revisions that can | |||
|
1029 | # possibly be in this branch, and the tip is a guaranteed head. | |||
|
1030 | # | |||
|
1031 | # Remember the tip's parents as the first ancestors, since these by | |||
|
1032 | # definition are not heads. | |||
|
1033 | # | |||
|
1034 | # Step backwards from the brach tip through all the revisions. We are | |||
|
1035 | # guaranteed by the rules of Mercurial that we will now be visiting the | |||
|
1036 | # nodes in reverse topological order (children before parents). | |||
|
1037 | # | |||
|
1038 | # If a revision is one of the ancestors of a head then we can toss it | |||
|
1039 | # out of the ancestors set (we've already found it and won't be | |||
|
1040 | # visiting it again) and put its parents in the ancestors set. | |||
|
1041 | # | |||
|
1042 | # Otherwise, if a revision is in the branch it's another head, since it | |||
|
1043 | # wasn't in the ancestor list of an existing head. So add it to the | |||
|
1044 | # head list, and add its parents to the ancestor list. | |||
|
1045 | # | |||
|
1046 | # If it is not in the branch ignore it. | |||
|
1047 | # | |||
|
1048 | # Once we have a list of heads, use nodesbetween to filter out all the | |||
|
1049 | # heads that cannot be reached from startrev. There may be a more | |||
|
1050 | # efficient way to do this as part of the previous algorithm. | |||
|
1051 | ||||
|
1052 | set = util.set | |||
|
1053 | heads = [self.changelog.rev(branches[branch])] | |||
|
1054 | # Don't care if ancestors contains nullrev or not. | |||
|
1055 | ancestors = set(self.changelog.parentrevs(heads[0])) | |||
|
1056 | for rev in xrange(heads[0] - 1, nullrev, -1): | |||
|
1057 | if rev in ancestors: | |||
|
1058 | ancestors.update(self.changelog.parentrevs(rev)) | |||
|
1059 | ancestors.remove(rev) | |||
|
1060 | elif self.changectx(rev).branch() == branch: | |||
|
1061 | heads.append(rev) | |||
|
1062 | ancestors.update(self.changelog.parentrevs(rev)) | |||
|
1063 | heads = [self.changelog.node(rev) for rev in heads] | |||
|
1064 | if start is not None: | |||
|
1065 | heads = self.changelog.nodesbetween([start], heads)[2] | |||
|
1066 | return heads | |||
|
1067 | ||||
1022 | def branches(self, nodes): |
|
1068 | def branches(self, nodes): | |
1023 | if not nodes: |
|
1069 | if not nodes: | |
1024 | nodes = [self.changelog.tip()] |
|
1070 | nodes = [self.changelog.tip()] |
General Comments 0
You need to be logged in to leave comments.
Login now