|
1 Test for the pick command |
|
2 |
|
3 $ cat >> $HGRCPATH <<EOF |
|
4 > [alias] |
|
5 > glog = log -G -T "{rev}:{node|short} {desc}\n" |
|
6 > [extensions] |
|
7 > EOF |
|
8 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH |
|
9 |
|
10 $ mkcommit() { |
|
11 > echo "$1" > "$1" |
|
12 > hg add "$1" |
|
13 > hg ci -m "add $1" |
|
14 > } |
|
15 |
|
16 $ hg init repo |
|
17 $ cd repo |
|
18 $ hg help pick |
|
19 hg pick [-r] rev |
|
20 |
|
21 aliases: grab |
|
22 |
|
23 move a commit on the top of working directory parent and updates to it. |
|
24 |
|
25 options: |
|
26 |
|
27 -r --rev REV revision to pick |
|
28 -c --continue continue interrupted pick |
|
29 -a --abort abort interrupted pick |
|
30 |
|
31 (some details hidden, use --verbose to show complete help) |
|
32 |
|
33 $ mkcommit a |
|
34 $ mkcommit b |
|
35 $ mkcommit c |
|
36 |
|
37 $ hg glog |
|
38 @ 2:4538525df7e2 add c |
|
39 | |
|
40 o 1:7c3bad9141dc add b |
|
41 | |
|
42 o 0:1f0dee641bb7 add a |
|
43 |
|
44 |
|
45 Grabbing an ancestor |
|
46 |
|
47 $ hg pick -r 7c3bad9141dc |
|
48 abort: cannot pick an ancestor revision |
|
49 [255] |
|
50 |
|
51 Grabbing the working directory parent |
|
52 |
|
53 $ hg pick -r . |
|
54 abort: cannot pick an ancestor revision |
|
55 [255] |
|
56 |
|
57 Specifying multiple revisions to pick |
|
58 |
|
59 $ hg pick 1f0dee641bb7 -r 7c3bad9141dc |
|
60 abort: specify just one revision |
|
61 [255] |
|
62 |
|
63 Specifying no revisions to pick |
|
64 |
|
65 $ hg pick |
|
66 abort: empty revision set |
|
67 [255] |
|
68 |
|
69 Continuing without interrupted pick |
|
70 |
|
71 $ hg pick --continue |
|
72 abort: no interrupted pick state exists |
|
73 [255] |
|
74 |
|
75 Aborting without interrupted pick |
|
76 |
|
77 $ hg pick --abort |
|
78 abort: no interrupted pick state exists |
|
79 [255] |
|
80 |
|
81 Specifying both continue and revs |
|
82 |
|
83 $ hg up 1f0dee641bb7 |
|
84 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
85 $ hg pick -r 4538525df7e2 --continue |
|
86 abort: cannot specify both --continue and revision |
|
87 [255] |
|
88 |
|
89 Making new branch heads |
|
90 |
|
91 $ mkcommit x |
|
92 created new head |
|
93 $ mkcommit y |
|
94 |
|
95 $ hg glog |
|
96 @ 4:d46dc301d92f add y |
|
97 | |
|
98 o 3:8e224524cd09 add x |
|
99 | |
|
100 | o 2:4538525df7e2 add c |
|
101 | | |
|
102 | o 1:7c3bad9141dc add b |
|
103 |/ |
|
104 o 0:1f0dee641bb7 add a |
|
105 |
|
106 Grabbing a revision |
|
107 |
|
108 $ hg pick 7c3bad9141dc |
|
109 picking 1:7c3bad9141dc "add b" |
|
110 1 new orphan changesets |
|
111 $ hg glog |
|
112 @ 5:7c15c05db6fa add b |
|
113 | |
|
114 o 4:d46dc301d92f add y |
|
115 | |
|
116 o 3:8e224524cd09 add x |
|
117 | |
|
118 | * 2:4538525df7e2 add c |
|
119 | | |
|
120 | x 1:7c3bad9141dc add b |
|
121 |/ |
|
122 o 0:1f0dee641bb7 add a |
|
123 |
|
124 |
|
125 When pick does not create any changes |
|
126 |
|
127 $ hg graft -r 4538525df7e2 |
|
128 grafting 2:4538525df7e2 "add c" |
|
129 |
|
130 $ hg glog |
|
131 @ 6:c4636a81ebeb add c |
|
132 | |
|
133 o 5:7c15c05db6fa add b |
|
134 | |
|
135 o 4:d46dc301d92f add y |
|
136 | |
|
137 o 3:8e224524cd09 add x |
|
138 | |
|
139 | * 2:4538525df7e2 add c |
|
140 | | |
|
141 | x 1:7c3bad9141dc add b |
|
142 |/ |
|
143 o 0:1f0dee641bb7 add a |
|
144 |
|
145 $ hg pick -r 4538525df7e2 |
|
146 picking 2:4538525df7e2 "add c" |
|
147 note: picking 2:4538525df7e2 created no changes to commit |
|
148 |
|
149 $ hg glog |
|
150 @ 6:c4636a81ebeb add c |
|
151 | |
|
152 o 5:7c15c05db6fa add b |
|
153 | |
|
154 o 4:d46dc301d92f add y |
|
155 | |
|
156 o 3:8e224524cd09 add x |
|
157 | |
|
158 o 0:1f0dee641bb7 add a |
|
159 |
|
160 interrupted pick |
|
161 |
|
162 $ hg up d46dc301d92f |
|
163 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
164 $ echo foo > c |
|
165 $ hg ci -Aqm "foo to c" |
|
166 $ hg pick -r c4636a81ebeb |
|
167 picking 6:c4636a81ebeb "add c" |
|
168 merging c |
|
169 warning: conflicts while merging c! (edit, then use 'hg resolve --mark') |
|
170 unresolved merge conflicts (see hg help resolve) |
|
171 [1] |
|
172 |
|
173 $ echo foobar > c |
|
174 $ hg resolve --all --mark |
|
175 (no more unresolved files) |
|
176 continue: hg pick --continue |
|
177 $ hg pick --continue |
|
178 $ hg glog |
|
179 @ 8:44e155eb95c7 add c |
|
180 | |
|
181 o 7:2ccc03d1d096 foo to c |
|
182 | |
|
183 | o 5:7c15c05db6fa add b |
|
184 |/ |
|
185 o 4:d46dc301d92f add y |
|
186 | |
|
187 o 3:8e224524cd09 add x |
|
188 | |
|
189 o 0:1f0dee641bb7 add a |
|
190 |
|
191 |
|
192 When interrupted pick results in no changes to commit |
|
193 |
|
194 $ hg up d46dc301d92f |
|
195 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
196 $ echo bar > c |
|
197 $ hg add c |
|
198 $ hg ci -m "foo to c" |
|
199 created new head |
|
200 |
|
201 $ hg up 44e155eb95c7 |
|
202 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
203 |
|
204 $ hg pick 4e04628911f6 |
|
205 picking 9:4e04628911f6 "foo to c" |
|
206 merging c |
|
207 warning: conflicts while merging c! (edit, then use 'hg resolve --mark') |
|
208 unresolved merge conflicts (see hg help resolve) |
|
209 [1] |
|
210 $ echo foobar > c |
|
211 $ hg resolve -m |
|
212 (no more unresolved files) |
|
213 continue: hg pick --continue |
|
214 |
|
215 $ hg pick --continue |
|
216 note: picking 9:4e04628911f6 created no changes to commit |
|
217 |
|
218 Testing the abort functionality of hg pick |
|
219 |
|
220 $ echo foo > b |
|
221 $ hg ci -Aqm "foo to b" |
|
222 $ hg glog -r .^:: |
|
223 @ 10:c437988de89f foo to b |
|
224 | |
|
225 o 8:44e155eb95c7 add c |
|
226 | |
|
227 ~ |
|
228 |
|
229 $ hg pick -r 7c15c05db6fa |
|
230 picking 5:7c15c05db6fa "add b" |
|
231 merging b |
|
232 warning: conflicts while merging b! (edit, then use 'hg resolve --mark') |
|
233 unresolved merge conflicts (see hg help resolve) |
|
234 [1] |
|
235 |
|
236 $ hg pick --abort |
|
237 aborting pick, updating to c437988de89f |
|
238 |
|
239 $ hg glog |
|
240 @ 10:c437988de89f foo to b |
|
241 | |
|
242 o 8:44e155eb95c7 add c |
|
243 | |
|
244 o 7:2ccc03d1d096 foo to c |
|
245 | |
|
246 | o 5:7c15c05db6fa add b |
|
247 |/ |
|
248 o 4:d46dc301d92f add y |
|
249 | |
|
250 o 3:8e224524cd09 add x |
|
251 | |
|
252 o 0:1f0dee641bb7 add a |
|
253 |
|
254 |
|
255 Trying to pick a public changeset |
|
256 |
|
257 $ hg phase -r 7c15c05db6fa -p |
|
258 |
|
259 $ hg pick -r 7c15c05db6fa |
|
260 abort: cannot pick public changesets: 7c15c05db6fa |
|
261 (see 'hg help phases' for details) |
|
262 [255] |
|
263 |
|
264 $ hg glog |
|
265 @ 10:c437988de89f foo to b |
|
266 | |
|
267 o 8:44e155eb95c7 add c |
|
268 | |
|
269 o 7:2ccc03d1d096 foo to c |
|
270 | |
|
271 | o 5:7c15c05db6fa add b |
|
272 |/ |
|
273 o 4:d46dc301d92f add y |
|
274 | |
|
275 o 3:8e224524cd09 add x |
|
276 | |
|
277 o 0:1f0dee641bb7 add a |
|
278 |
|
279 Checking phase preservation while picking secret changeset |
|
280 |
|
281 In case of merge conflicts |
|
282 |
|
283 $ hg phase -r 7c15c05db6fa -s -f |
|
284 |
|
285 $ hg pick -r 7c15c05db6fa |
|
286 picking 5:7c15c05db6fa "add b" |
|
287 merging b |
|
288 warning: conflicts while merging b! (edit, then use 'hg resolve --mark') |
|
289 unresolved merge conflicts (see hg help resolve) |
|
290 [1] |
|
291 |
|
292 $ echo bar > b |
|
293 $ hg resolve -m |
|
294 (no more unresolved files) |
|
295 continue: hg pick --continue |
|
296 |
|
297 $ hg pick --continue |
|
298 $ hg phase -r . |
|
299 11: secret |
|
300 |
|
301 No merge conflicts |
|
302 |
|
303 $ hg up d46dc301d92f |
|
304 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
|
305 $ echo foo > l |
|
306 $ hg add l |
|
307 $ hg ci -qm "added l" --secret |
|
308 |
|
309 $ hg phase -r . |
|
310 12: secret |
|
311 |
|
312 $ hg glog |
|
313 @ 12:508d572e7053 added l |
|
314 | |
|
315 | o 11:10427de9e26e add b |
|
316 | | |
|
317 | o 10:c437988de89f foo to b |
|
318 | | |
|
319 | o 8:44e155eb95c7 add c |
|
320 | | |
|
321 | o 7:2ccc03d1d096 foo to c |
|
322 |/ |
|
323 o 4:d46dc301d92f add y |
|
324 | |
|
325 o 3:8e224524cd09 add x |
|
326 | |
|
327 o 0:1f0dee641bb7 add a |
|
328 |
|
329 $ hg up 10427de9e26e |
|
330 3 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
331 |
|
332 $ hg pick -r 508d572e7053 |
|
333 picking 12:508d572e7053 "added l" |
|
334 |
|
335 $ hg phase -r . |
|
336 13: secret |