##// END OF EJS Templates
shelve: add option combination tests for refactoring in succeeding patch
FUJIWARA Katsunori -
r21715:3eb43b70 default
parent child Browse files
Show More
@@ -1,667 +1,688 b''
1 $ echo "[extensions]" >> $HGRCPATH
1 $ echo "[extensions]" >> $HGRCPATH
2 $ echo "mq=" >> $HGRCPATH
2 $ echo "mq=" >> $HGRCPATH
3 $ echo "shelve=" >> $HGRCPATH
3 $ echo "shelve=" >> $HGRCPATH
4 $ echo "[defaults]" >> $HGRCPATH
4 $ echo "[defaults]" >> $HGRCPATH
5 $ echo "diff = --nodates --git" >> $HGRCPATH
5 $ echo "diff = --nodates --git" >> $HGRCPATH
6 $ echo "qnew = --date '0 0'" >> $HGRCPATH
6 $ echo "qnew = --date '0 0'" >> $HGRCPATH
7
7
8 $ hg init repo
8 $ hg init repo
9 $ cd repo
9 $ cd repo
10 $ mkdir a b
10 $ mkdir a b
11 $ echo a > a/a
11 $ echo a > a/a
12 $ echo b > b/b
12 $ echo b > b/b
13 $ echo c > c
13 $ echo c > c
14 $ echo d > d
14 $ echo d > d
15 $ echo x > x
15 $ echo x > x
16 $ hg addremove -q
16 $ hg addremove -q
17
17
18 shelving in an empty repo should be possible
18 shelving in an empty repo should be possible
19
19
20 $ hg shelve
20 $ hg shelve
21 shelved as default
21 shelved as default
22 0 files updated, 0 files merged, 5 files removed, 0 files unresolved
22 0 files updated, 0 files merged, 5 files removed, 0 files unresolved
23
23
24 $ hg unshelve
24 $ hg unshelve
25 unshelving change 'default'
25 unshelving change 'default'
26
26
27 $ hg commit -q -m 'initial commit'
27 $ hg commit -q -m 'initial commit'
28
28
29 $ hg shelve
29 $ hg shelve
30 nothing changed
30 nothing changed
31 [1]
31 [1]
32
32
33 create an mq patch - shelving should work fine with a patch applied
33 create an mq patch - shelving should work fine with a patch applied
34
34
35 $ echo n > n
35 $ echo n > n
36 $ hg add n
36 $ hg add n
37 $ hg commit n -m second
37 $ hg commit n -m second
38 $ hg qnew second.patch
38 $ hg qnew second.patch
39
39
40 shelve a change that we will delete later
40 shelve a change that we will delete later
41
41
42 $ echo a >> a/a
42 $ echo a >> a/a
43 $ hg shelve
43 $ hg shelve
44 shelved as default
44 shelved as default
45 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
45 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
46
46
47 set up some more complex changes to shelve
47 set up some more complex changes to shelve
48
48
49 $ echo a >> a/a
49 $ echo a >> a/a
50 $ hg mv b b.rename
50 $ hg mv b b.rename
51 moving b/b to b.rename/b (glob)
51 moving b/b to b.rename/b (glob)
52 $ hg cp c c.copy
52 $ hg cp c c.copy
53 $ hg status -C
53 $ hg status -C
54 M a/a
54 M a/a
55 A b.rename/b
55 A b.rename/b
56 b/b
56 b/b
57 A c.copy
57 A c.copy
58 c
58 c
59 R b/b
59 R b/b
60
60
61 prevent some foot-shooting
61 prevent some foot-shooting
62
62
63 $ hg shelve -n foo/bar
63 $ hg shelve -n foo/bar
64 abort: shelved change names may not contain slashes
64 abort: shelved change names may not contain slashes
65 [255]
65 [255]
66 $ hg shelve -n .baz
66 $ hg shelve -n .baz
67 abort: shelved change names may not start with '.'
67 abort: shelved change names may not start with '.'
68 [255]
68 [255]
69
69
70 the common case - no options or filenames
70 the common case - no options or filenames
71
71
72 $ hg shelve
72 $ hg shelve
73 shelved as default-01
73 shelved as default-01
74 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
74 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
75 $ hg status -C
75 $ hg status -C
76
76
77 ensure that our shelved changes exist
77 ensure that our shelved changes exist
78
78
79 $ hg shelve -l
79 $ hg shelve -l
80 default-01 (*) changes to '[mq]: second.patch' (glob)
80 default-01 (*) changes to '[mq]: second.patch' (glob)
81 default (*) changes to '[mq]: second.patch' (glob)
81 default (*) changes to '[mq]: second.patch' (glob)
82
82
83 $ hg shelve -l -p default
83 $ hg shelve -l -p default
84 default (*) changes to '[mq]: second.patch' (glob)
84 default (*) changes to '[mq]: second.patch' (glob)
85
85
86 diff --git a/a/a b/a/a
86 diff --git a/a/a b/a/a
87 --- a/a/a
87 --- a/a/a
88 +++ b/a/a
88 +++ b/a/a
89 @@ -1,1 +1,2 @@
89 @@ -1,1 +1,2 @@
90 a
90 a
91 +a
91 +a
92
92
93 $ hg shelve --list --addremove
94 abort: options '--list' and '--addremove' may not be used together
95 [255]
96
93 delete our older shelved change
97 delete our older shelved change
94
98
95 $ hg shelve -d default
99 $ hg shelve -d default
96 $ hg qfinish -a -q
100 $ hg qfinish -a -q
97
101
98 local edits should not prevent a shelved change from applying
102 local edits should not prevent a shelved change from applying
99
103
100 $ printf "z\na\n" > a/a
104 $ printf "z\na\n" > a/a
101 $ hg unshelve --keep
105 $ hg unshelve --keep
102 unshelving change 'default-01'
106 unshelving change 'default-01'
103 temporarily committing pending changes (restore with 'hg unshelve --abort')
107 temporarily committing pending changes (restore with 'hg unshelve --abort')
104 rebasing shelved changes
108 rebasing shelved changes
105 merging a/a
109 merging a/a
106
110
107 $ hg revert --all -q
111 $ hg revert --all -q
108 $ rm a/a.orig b.rename/b c.copy
112 $ rm a/a.orig b.rename/b c.copy
109
113
110 apply it and make sure our state is as expected
114 apply it and make sure our state is as expected
111
115
112 $ hg unshelve
116 $ hg unshelve
113 unshelving change 'default-01'
117 unshelving change 'default-01'
114 $ hg status -C
118 $ hg status -C
115 M a/a
119 M a/a
116 A b.rename/b
120 A b.rename/b
117 b/b
121 b/b
118 A c.copy
122 A c.copy
119 c
123 c
120 R b/b
124 R b/b
121 $ hg shelve -l
125 $ hg shelve -l
122
126
123 $ hg unshelve
127 $ hg unshelve
124 abort: no shelved changes to apply!
128 abort: no shelved changes to apply!
125 [255]
129 [255]
126 $ hg unshelve foo
130 $ hg unshelve foo
127 abort: shelved change 'foo' not found
131 abort: shelved change 'foo' not found
128 [255]
132 [255]
129
133
130 named shelves, specific filenames, and "commit messages" should all work
134 named shelves, specific filenames, and "commit messages" should all work
131
135
132 $ hg status -C
136 $ hg status -C
133 M a/a
137 M a/a
134 A b.rename/b
138 A b.rename/b
135 b/b
139 b/b
136 A c.copy
140 A c.copy
137 c
141 c
138 R b/b
142 R b/b
139 $ hg shelve -q -n wibble -m wat a
143 $ hg shelve -q -n wibble -m wat a
140
144
141 expect "a" to no longer be present, but status otherwise unchanged
145 expect "a" to no longer be present, but status otherwise unchanged
142
146
143 $ hg status -C
147 $ hg status -C
144 A b.rename/b
148 A b.rename/b
145 b/b
149 b/b
146 A c.copy
150 A c.copy
147 c
151 c
148 R b/b
152 R b/b
149 $ hg shelve -l --stat
153 $ hg shelve -l --stat
150 wibble (*) wat (glob)
154 wibble (*) wat (glob)
151 a/a | 1 +
155 a/a | 1 +
152 1 files changed, 1 insertions(+), 0 deletions(-)
156 1 files changed, 1 insertions(+), 0 deletions(-)
153
157
154 and now "a/a" should reappear
158 and now "a/a" should reappear
155
159
156 $ cd a
160 $ cd a
157 $ hg unshelve -q wibble
161 $ hg unshelve -q wibble
158 $ cd ..
162 $ cd ..
159 $ hg status -C
163 $ hg status -C
160 M a/a
164 M a/a
161 A b.rename/b
165 A b.rename/b
162 b/b
166 b/b
163 A c.copy
167 A c.copy
164 c
168 c
165 R b/b
169 R b/b
166
170
167 cause unshelving to result in a merge with 'a' conflicting
171 cause unshelving to result in a merge with 'a' conflicting
168
172
169 $ hg shelve -q
173 $ hg shelve -q
170 $ echo c>>a/a
174 $ echo c>>a/a
171 $ hg commit -m second
175 $ hg commit -m second
172 $ hg tip --template '{files}\n'
176 $ hg tip --template '{files}\n'
173 a/a
177 a/a
174
178
175 add an unrelated change that should be preserved
179 add an unrelated change that should be preserved
176
180
177 $ mkdir foo
181 $ mkdir foo
178 $ echo foo > foo/foo
182 $ echo foo > foo/foo
179 $ hg add foo/foo
183 $ hg add foo/foo
180
184
181 force a conflicted merge to occur
185 force a conflicted merge to occur
182
186
183 $ hg unshelve
187 $ hg unshelve
184 unshelving change 'default'
188 unshelving change 'default'
185 temporarily committing pending changes (restore with 'hg unshelve --abort')
189 temporarily committing pending changes (restore with 'hg unshelve --abort')
186 rebasing shelved changes
190 rebasing shelved changes
187 merging a/a
191 merging a/a
188 warning: conflicts during merge.
192 warning: conflicts during merge.
189 merging a/a incomplete! (edit conflicts, then use 'hg resolve --mark')
193 merging a/a incomplete! (edit conflicts, then use 'hg resolve --mark')
190 unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
194 unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
191 [1]
195 [1]
192
196
193 ensure that we have a merge with unresolved conflicts
197 ensure that we have a merge with unresolved conflicts
194
198
195 $ hg heads -q --template '{rev}\n'
199 $ hg heads -q --template '{rev}\n'
196 5
200 5
197 4
201 4
198 $ hg parents -q --template '{rev}\n'
202 $ hg parents -q --template '{rev}\n'
199 4
203 4
200 5
204 5
201 $ hg status
205 $ hg status
202 M a/a
206 M a/a
203 M b.rename/b
207 M b.rename/b
204 M c.copy
208 M c.copy
205 R b/b
209 R b/b
206 ? a/a.orig
210 ? a/a.orig
207 $ hg diff
211 $ hg diff
208 diff --git a/a/a b/a/a
212 diff --git a/a/a b/a/a
209 --- a/a/a
213 --- a/a/a
210 +++ b/a/a
214 +++ b/a/a
211 @@ -1,2 +1,6 @@
215 @@ -1,2 +1,6 @@
212 a
216 a
213 +<<<<<<< dest: * - shelve: pending changes temporary commit (glob)
217 +<<<<<<< dest: * - shelve: pending changes temporary commit (glob)
214 c
218 c
215 +=======
219 +=======
216 +a
220 +a
217 +>>>>>>> source: 4702e8911fe0 - shelve: changes to '[mq]: second.patch'
221 +>>>>>>> source: 4702e8911fe0 - shelve: changes to '[mq]: second.patch'
218 diff --git a/b.rename/b b/b.rename/b
222 diff --git a/b.rename/b b/b.rename/b
219 new file mode 100644
223 new file mode 100644
220 --- /dev/null
224 --- /dev/null
221 +++ b/b.rename/b
225 +++ b/b.rename/b
222 @@ -0,0 +1,1 @@
226 @@ -0,0 +1,1 @@
223 +b
227 +b
224 diff --git a/b/b b/b/b
228 diff --git a/b/b b/b/b
225 deleted file mode 100644
229 deleted file mode 100644
226 --- a/b/b
230 --- a/b/b
227 +++ /dev/null
231 +++ /dev/null
228 @@ -1,1 +0,0 @@
232 @@ -1,1 +0,0 @@
229 -b
233 -b
230 diff --git a/c.copy b/c.copy
234 diff --git a/c.copy b/c.copy
231 new file mode 100644
235 new file mode 100644
232 --- /dev/null
236 --- /dev/null
233 +++ b/c.copy
237 +++ b/c.copy
234 @@ -0,0 +1,1 @@
238 @@ -0,0 +1,1 @@
235 +c
239 +c
236 $ hg resolve -l
240 $ hg resolve -l
237 U a/a
241 U a/a
238
242
239 $ hg shelve
243 $ hg shelve
240 abort: unshelve already in progress
244 abort: unshelve already in progress
241 (use 'hg unshelve --continue' or 'hg unshelve --abort')
245 (use 'hg unshelve --continue' or 'hg unshelve --abort')
242 [255]
246 [255]
243
247
244 abort the unshelve and be happy
248 abort the unshelve and be happy
245
249
246 $ hg status
250 $ hg status
247 M a/a
251 M a/a
248 M b.rename/b
252 M b.rename/b
249 M c.copy
253 M c.copy
250 R b/b
254 R b/b
251 ? a/a.orig
255 ? a/a.orig
252 $ hg unshelve -a
256 $ hg unshelve -a
253 rebase aborted
257 rebase aborted
254 unshelve of 'default' aborted
258 unshelve of 'default' aborted
255 $ hg heads -q
259 $ hg heads -q
256 3:2e69b451d1ea
260 3:2e69b451d1ea
257 $ hg parents
261 $ hg parents
258 changeset: 3:2e69b451d1ea
262 changeset: 3:2e69b451d1ea
259 tag: tip
263 tag: tip
260 user: test
264 user: test
261 date: Thu Jan 01 00:00:00 1970 +0000
265 date: Thu Jan 01 00:00:00 1970 +0000
262 summary: second
266 summary: second
263
267
264 $ hg resolve -l
268 $ hg resolve -l
265 $ hg status
269 $ hg status
266 A foo/foo
270 A foo/foo
267 ? a/a.orig
271 ? a/a.orig
268
272
269 try to continue with no unshelve underway
273 try to continue with no unshelve underway
270
274
271 $ hg unshelve -c
275 $ hg unshelve -c
272 abort: no unshelve operation underway
276 abort: no unshelve operation underway
273 [255]
277 [255]
274 $ hg status
278 $ hg status
275 A foo/foo
279 A foo/foo
276 ? a/a.orig
280 ? a/a.orig
277
281
278 redo the unshelve to get a conflict
282 redo the unshelve to get a conflict
279
283
280 $ hg unshelve -q
284 $ hg unshelve -q
281 warning: conflicts during merge.
285 warning: conflicts during merge.
282 merging a/a incomplete! (edit conflicts, then use 'hg resolve --mark')
286 merging a/a incomplete! (edit conflicts, then use 'hg resolve --mark')
283 unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
287 unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
284 [1]
288 [1]
285
289
286 attempt to continue
290 attempt to continue
287
291
288 $ hg unshelve -c
292 $ hg unshelve -c
289 abort: unresolved conflicts, can't continue
293 abort: unresolved conflicts, can't continue
290 (see 'hg resolve', then 'hg unshelve --continue')
294 (see 'hg resolve', then 'hg unshelve --continue')
291 [255]
295 [255]
292
296
293 $ hg revert -r . a/a
297 $ hg revert -r . a/a
294 $ hg resolve -m a/a
298 $ hg resolve -m a/a
295 no more unresolved files
299 no more unresolved files
296
300
297 $ hg commit -m 'commit while unshelve in progress'
301 $ hg commit -m 'commit while unshelve in progress'
298 abort: unshelve already in progress
302 abort: unshelve already in progress
299 (use 'hg unshelve --continue' or 'hg unshelve --abort')
303 (use 'hg unshelve --continue' or 'hg unshelve --abort')
300 [255]
304 [255]
301
305
302 $ hg unshelve -c
306 $ hg unshelve -c
303 unshelve of 'default' complete
307 unshelve of 'default' complete
304
308
305 ensure the repo is as we hope
309 ensure the repo is as we hope
306
310
307 $ hg parents
311 $ hg parents
308 changeset: 3:2e69b451d1ea
312 changeset: 3:2e69b451d1ea
309 tag: tip
313 tag: tip
310 user: test
314 user: test
311 date: Thu Jan 01 00:00:00 1970 +0000
315 date: Thu Jan 01 00:00:00 1970 +0000
312 summary: second
316 summary: second
313
317
314 $ hg heads -q
318 $ hg heads -q
315 3:2e69b451d1ea
319 3:2e69b451d1ea
316
320
317 $ hg status -C
321 $ hg status -C
318 A b.rename/b
322 A b.rename/b
319 b/b
323 b/b
320 A c.copy
324 A c.copy
321 c
325 c
322 A foo/foo
326 A foo/foo
323 R b/b
327 R b/b
324 ? a/a.orig
328 ? a/a.orig
325
329
326 there should be no shelves left
330 there should be no shelves left
327
331
328 $ hg shelve -l
332 $ hg shelve -l
329
333
330 #if execbit
334 #if execbit
331
335
332 ensure that metadata-only changes are shelved
336 ensure that metadata-only changes are shelved
333
337
334 $ chmod +x a/a
338 $ chmod +x a/a
335 $ hg shelve -q -n execbit a/a
339 $ hg shelve -q -n execbit a/a
336 $ hg status a/a
340 $ hg status a/a
337 $ hg unshelve -q execbit
341 $ hg unshelve -q execbit
338 $ hg status a/a
342 $ hg status a/a
339 M a/a
343 M a/a
340 $ hg revert a/a
344 $ hg revert a/a
341
345
342 #endif
346 #endif
343
347
344 #if symlink
348 #if symlink
345
349
346 $ rm a/a
350 $ rm a/a
347 $ ln -s foo a/a
351 $ ln -s foo a/a
348 $ hg shelve -q -n symlink a/a
352 $ hg shelve -q -n symlink a/a
349 $ hg status a/a
353 $ hg status a/a
350 $ hg unshelve -q symlink
354 $ hg unshelve -q symlink
351 $ hg status a/a
355 $ hg status a/a
352 M a/a
356 M a/a
353 $ hg revert a/a
357 $ hg revert a/a
354
358
355 #endif
359 #endif
356
360
357 set up another conflict between a commit and a shelved change
361 set up another conflict between a commit and a shelved change
358
362
359 $ hg revert -q -C -a
363 $ hg revert -q -C -a
360 $ rm a/a.orig b.rename/b c.copy
364 $ rm a/a.orig b.rename/b c.copy
361 $ echo a >> a/a
365 $ echo a >> a/a
362 $ hg shelve -q
366 $ hg shelve -q
363 $ echo x >> a/a
367 $ echo x >> a/a
364 $ hg ci -m 'create conflict'
368 $ hg ci -m 'create conflict'
365 $ hg add foo/foo
369 $ hg add foo/foo
366
370
367 if we resolve a conflict while unshelving, the unshelve should succeed
371 if we resolve a conflict while unshelving, the unshelve should succeed
368
372
369 $ HGMERGE=true hg unshelve
373 $ HGMERGE=true hg unshelve
370 unshelving change 'default'
374 unshelving change 'default'
371 temporarily committing pending changes (restore with 'hg unshelve --abort')
375 temporarily committing pending changes (restore with 'hg unshelve --abort')
372 rebasing shelved changes
376 rebasing shelved changes
373 merging a/a
377 merging a/a
374 $ hg parents -q
378 $ hg parents -q
375 4:33f7f61e6c5e
379 4:33f7f61e6c5e
376 $ hg shelve -l
380 $ hg shelve -l
377 $ hg status
381 $ hg status
378 A foo/foo
382 A foo/foo
379 $ cat a/a
383 $ cat a/a
380 a
384 a
381 c
385 c
382 x
386 x
383
387
384 test keep and cleanup
388 test keep and cleanup
385
389
386 $ hg shelve
390 $ hg shelve
387 shelved as default
391 shelved as default
388 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
392 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
389 $ hg shelve --list
393 $ hg shelve --list
390 default (*) changes to 'create conflict' (glob)
394 default (*) changes to 'create conflict' (glob)
391 $ hg unshelve --keep
395 $ hg unshelve --keep
392 unshelving change 'default'
396 unshelving change 'default'
393 $ hg shelve --list
397 $ hg shelve --list
394 default (*) changes to 'create conflict' (glob)
398 default (*) changes to 'create conflict' (glob)
395 $ hg shelve --cleanup
399 $ hg shelve --cleanup
396 $ hg shelve --list
400 $ hg shelve --list
397
401
402 $ hg shelve --cleanup --delete
403 abort: options '--cleanup' and '--delete' may not be used together
404 [255]
405 $ hg shelve --cleanup --patch
406 abort: options '--cleanup' and '--patch' may not be used together
407 [255]
408 $ hg shelve --cleanup --message MESSAGE
409 abort: options '--cleanup' and '--message' may not be used together
410 [255]
411
398 test bookmarks
412 test bookmarks
399
413
400 $ hg bookmark test
414 $ hg bookmark test
401 $ hg bookmark
415 $ hg bookmark
402 * test 4:33f7f61e6c5e
416 * test 4:33f7f61e6c5e
403 $ hg shelve
417 $ hg shelve
404 shelved as test
418 shelved as test
405 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
419 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
406 $ hg bookmark
420 $ hg bookmark
407 * test 4:33f7f61e6c5e
421 * test 4:33f7f61e6c5e
408 $ hg unshelve
422 $ hg unshelve
409 unshelving change 'test'
423 unshelving change 'test'
410 $ hg bookmark
424 $ hg bookmark
411 * test 4:33f7f61e6c5e
425 * test 4:33f7f61e6c5e
412
426
413 shelve should still work even if mq is disabled
427 shelve should still work even if mq is disabled
414
428
415 $ hg --config extensions.mq=! shelve
429 $ hg --config extensions.mq=! shelve
416 shelved as test
430 shelved as test
417 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
431 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
418 $ hg --config extensions.mq=! shelve --list
432 $ hg --config extensions.mq=! shelve --list
419 test (*) changes to 'create conflict' (glob)
433 test (*) changes to 'create conflict' (glob)
420 $ hg --config extensions.mq=! unshelve
434 $ hg --config extensions.mq=! unshelve
421 unshelving change 'test'
435 unshelving change 'test'
422
436
423 shelve should leave dirstate clean (issue 4055)
437 shelve should leave dirstate clean (issue 4055)
424
438
425 $ cd ..
439 $ cd ..
426 $ hg init shelverebase
440 $ hg init shelverebase
427 $ cd shelverebase
441 $ cd shelverebase
428 $ printf 'x\ny\n' > x
442 $ printf 'x\ny\n' > x
429 $ echo z > z
443 $ echo z > z
430 $ hg commit -Aqm xy
444 $ hg commit -Aqm xy
431 $ echo z >> x
445 $ echo z >> x
432 $ hg commit -Aqm z
446 $ hg commit -Aqm z
433 $ hg up 0
447 $ hg up 0
434 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
448 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
435 $ printf 'a\nx\ny\nz\n' > x
449 $ printf 'a\nx\ny\nz\n' > x
436 $ hg commit -Aqm xyz
450 $ hg commit -Aqm xyz
437 $ echo c >> z
451 $ echo c >> z
438 $ hg shelve
452 $ hg shelve
439 shelved as default
453 shelved as default
440 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
454 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
441 $ hg rebase -d 1 --config extensions.rebase=
455 $ hg rebase -d 1 --config extensions.rebase=
442 merging x
456 merging x
443 saved backup bundle to $TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-backup.hg (glob)
457 saved backup bundle to $TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-backup.hg (glob)
444 $ hg unshelve
458 $ hg unshelve
445 unshelving change 'default'
459 unshelving change 'default'
446 rebasing shelved changes
460 rebasing shelved changes
447 $ hg status
461 $ hg status
448 M z
462 M z
449
463
450 $ cd ..
464 $ cd ..
451
465
452 shelve should only unshelve pending changes (issue 4068)
466 shelve should only unshelve pending changes (issue 4068)
453
467
454 $ hg init onlypendingchanges
468 $ hg init onlypendingchanges
455 $ cd onlypendingchanges
469 $ cd onlypendingchanges
456 $ touch a
470 $ touch a
457 $ hg ci -Aqm a
471 $ hg ci -Aqm a
458 $ touch b
472 $ touch b
459 $ hg ci -Aqm b
473 $ hg ci -Aqm b
460 $ hg up -q 0
474 $ hg up -q 0
461 $ touch c
475 $ touch c
462 $ hg ci -Aqm c
476 $ hg ci -Aqm c
463
477
464 $ touch d
478 $ touch d
465 $ hg add d
479 $ hg add d
466 $ hg shelve
480 $ hg shelve
467 shelved as default
481 shelved as default
468 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
482 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
469 $ hg up -q 1
483 $ hg up -q 1
470 $ hg unshelve
484 $ hg unshelve
471 unshelving change 'default'
485 unshelving change 'default'
472 rebasing shelved changes
486 rebasing shelved changes
473 $ hg status
487 $ hg status
474 A d
488 A d
475
489
476 unshelve should work on an ancestor of the original commit
490 unshelve should work on an ancestor of the original commit
477
491
478 $ hg shelve
492 $ hg shelve
479 shelved as default
493 shelved as default
480 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
494 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
481 $ hg up 0
495 $ hg up 0
482 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
496 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
483 $ hg unshelve
497 $ hg unshelve
484 unshelving change 'default'
498 unshelving change 'default'
485 rebasing shelved changes
499 rebasing shelved changes
486 $ hg status
500 $ hg status
487 A d
501 A d
488
502
489 test bug 4073 we need to enable obsolete markers for it
503 test bug 4073 we need to enable obsolete markers for it
490
504
491 $ cat > ../obs.py << EOF
505 $ cat > ../obs.py << EOF
492 > import mercurial.obsolete
506 > import mercurial.obsolete
493 > mercurial.obsolete._enabled = True
507 > mercurial.obsolete._enabled = True
494 > EOF
508 > EOF
495 $ echo '[extensions]' >> $HGRCPATH
509 $ echo '[extensions]' >> $HGRCPATH
496 $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
510 $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
497 $ hg shelve
511 $ hg shelve
498 shelved as default
512 shelved as default
499 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
513 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
500 $ hg debugobsolete `hg --debug id -i -r 1`
514 $ hg debugobsolete `hg --debug id -i -r 1`
501 $ hg unshelve
515 $ hg unshelve
502 unshelving change 'default'
516 unshelving change 'default'
503
517
504 unshelve should leave unknown files alone (issue4113)
518 unshelve should leave unknown files alone (issue4113)
505
519
506 $ echo e > e
520 $ echo e > e
507 $ hg shelve
521 $ hg shelve
508 shelved as default
522 shelved as default
509 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
523 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
510 $ hg status
524 $ hg status
511 ? e
525 ? e
512 $ hg unshelve
526 $ hg unshelve
513 unshelving change 'default'
527 unshelving change 'default'
514 $ hg status
528 $ hg status
515 A d
529 A d
516 ? e
530 ? e
517 $ cat e
531 $ cat e
518 e
532 e
519
533
520 unshelve should keep a copy of unknown files
534 unshelve should keep a copy of unknown files
521
535
522 $ hg add e
536 $ hg add e
523 $ hg shelve
537 $ hg shelve
524 shelved as default
538 shelved as default
525 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
539 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
526 $ echo z > e
540 $ echo z > e
527 $ hg unshelve
541 $ hg unshelve
528 unshelving change 'default'
542 unshelving change 'default'
529 $ cat e
543 $ cat e
530 e
544 e
531 $ cat e.orig
545 $ cat e.orig
532 z
546 z
533
547
534
548
535 unshelve and conflicts with tracked and untracked files
549 unshelve and conflicts with tracked and untracked files
536
550
537 preparing:
551 preparing:
538
552
539 $ rm *.orig
553 $ rm *.orig
540 $ hg ci -qm 'commit stuff'
554 $ hg ci -qm 'commit stuff'
541 $ hg phase -p null:
555 $ hg phase -p null:
542
556
543 no other changes - no merge:
557 no other changes - no merge:
544
558
545 $ echo f > f
559 $ echo f > f
546 $ hg add f
560 $ hg add f
547 $ hg shelve
561 $ hg shelve
548 shelved as default
562 shelved as default
549 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
563 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
550 $ echo g > f
564 $ echo g > f
551 $ hg unshelve
565 $ hg unshelve
552 unshelving change 'default'
566 unshelving change 'default'
553 $ hg st
567 $ hg st
554 A f
568 A f
555 ? f.orig
569 ? f.orig
556 $ cat f
570 $ cat f
557 f
571 f
558 $ cat f.orig
572 $ cat f.orig
559 g
573 g
560
574
561 other uncommitted changes - merge:
575 other uncommitted changes - merge:
562
576
563 $ hg st
577 $ hg st
564 A f
578 A f
565 ? f.orig
579 ? f.orig
566 $ hg shelve
580 $ hg shelve
567 shelved as default
581 shelved as default
568 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
582 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
569 $ hg log -G --template '{rev} {desc|firstline} {author}' -R bundle://.hg/shelved/default.hg -r 'bundle()'
583 $ hg log -G --template '{rev} {desc|firstline} {author}' -R bundle://.hg/shelved/default.hg -r 'bundle()'
570 o 4 changes to 'commit stuff' shelve@localhost
584 o 4 changes to 'commit stuff' shelve@localhost
571 |
585 |
572 $ hg log -G --template '{rev} {desc|firstline} {author}'
586 $ hg log -G --template '{rev} {desc|firstline} {author}'
573 @ 3 commit stuff test
587 @ 3 commit stuff test
574 |
588 |
575 | o 2 c test
589 | o 2 c test
576 |/
590 |/
577 o 0 a test
591 o 0 a test
578
592
579 $ mv f.orig f
593 $ mv f.orig f
580 $ echo 1 > a
594 $ echo 1 > a
581 $ hg unshelve --date '1073741824 0'
595 $ hg unshelve --date '1073741824 0'
582 unshelving change 'default'
596 unshelving change 'default'
583 temporarily committing pending changes (restore with 'hg unshelve --abort')
597 temporarily committing pending changes (restore with 'hg unshelve --abort')
584 rebasing shelved changes
598 rebasing shelved changes
585 merging f
599 merging f
586 warning: conflicts during merge.
600 warning: conflicts during merge.
587 merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
601 merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
588 unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
602 unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
589 [1]
603 [1]
590 $ hg log -G --template '{rev} {desc|firstline} {author} {date|isodate}'
604 $ hg log -G --template '{rev} {desc|firstline} {author} {date|isodate}'
591 @ 5 changes to 'commit stuff' shelve@localhost 1970-01-01 00:00 +0000
605 @ 5 changes to 'commit stuff' shelve@localhost 1970-01-01 00:00 +0000
592 |
606 |
593 | @ 4 pending changes temporary commit shelve@localhost 2004-01-10 13:37 +0000
607 | @ 4 pending changes temporary commit shelve@localhost 2004-01-10 13:37 +0000
594 |/
608 |/
595 o 3 commit stuff test 1970-01-01 00:00 +0000
609 o 3 commit stuff test 1970-01-01 00:00 +0000
596 |
610 |
597 | o 2 c test 1970-01-01 00:00 +0000
611 | o 2 c test 1970-01-01 00:00 +0000
598 |/
612 |/
599 o 0 a test 1970-01-01 00:00 +0000
613 o 0 a test 1970-01-01 00:00 +0000
600
614
601 $ hg st
615 $ hg st
602 M f
616 M f
603 ? f.orig
617 ? f.orig
604 $ cat f
618 $ cat f
605 <<<<<<< dest: 5f6b880e719b - shelve: pending changes temporary commit
619 <<<<<<< dest: 5f6b880e719b - shelve: pending changes temporary commit
606 g
620 g
607 =======
621 =======
608 f
622 f
609 >>>>>>> source: 23b29cada8ba - shelve: changes to 'commit stuff'
623 >>>>>>> source: 23b29cada8ba - shelve: changes to 'commit stuff'
610 $ cat f.orig
624 $ cat f.orig
611 g
625 g
612 $ hg unshelve --abort
626 $ hg unshelve --abort
613 rebase aborted
627 rebase aborted
614 unshelve of 'default' aborted
628 unshelve of 'default' aborted
615 $ hg st
629 $ hg st
616 M a
630 M a
617 ? f.orig
631 ? f.orig
618 $ cat f.orig
632 $ cat f.orig
619 g
633 g
620 $ hg unshelve
634 $ hg unshelve
621 unshelving change 'default'
635 unshelving change 'default'
622 temporarily committing pending changes (restore with 'hg unshelve --abort')
636 temporarily committing pending changes (restore with 'hg unshelve --abort')
623 rebasing shelved changes
637 rebasing shelved changes
624 $ hg st
638 $ hg st
625 M a
639 M a
626 A f
640 A f
627 ? f.orig
641 ? f.orig
628
642
629 other committed changes - merge:
643 other committed changes - merge:
630
644
631 $ hg shelve f
645 $ hg shelve f
632 shelved as default
646 shelved as default
633 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
647 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
634 $ hg ci a -m 'intermediate other change'
648 $ hg ci a -m 'intermediate other change'
635 $ mv f.orig f
649 $ mv f.orig f
636 $ hg unshelve
650 $ hg unshelve
637 unshelving change 'default'
651 unshelving change 'default'
638 rebasing shelved changes
652 rebasing shelved changes
639 merging f
653 merging f
640 warning: conflicts during merge.
654 warning: conflicts during merge.
641 merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
655 merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
642 unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
656 unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
643 [1]
657 [1]
644 $ hg st
658 $ hg st
645 M f
659 M f
646 ? f.orig
660 ? f.orig
647 $ cat f
661 $ cat f
648 <<<<<<< dest: * - test: intermediate other change (glob)
662 <<<<<<< dest: * - test: intermediate other change (glob)
649 g
663 g
650 =======
664 =======
651 f
665 f
652 >>>>>>> source: 23b29cada8ba - shelve: changes to 'commit stuff'
666 >>>>>>> source: 23b29cada8ba - shelve: changes to 'commit stuff'
653 $ cat f.orig
667 $ cat f.orig
654 g
668 g
655 $ hg unshelve --abort
669 $ hg unshelve --abort
656 rebase aborted
670 rebase aborted
657 no changes needed to a
671 no changes needed to a
658 no changes needed to d
672 no changes needed to d
659 no changes needed to e
673 no changes needed to e
660 unshelve of 'default' aborted
674 unshelve of 'default' aborted
661 $ hg st
675 $ hg st
662 ? f.orig
676 ? f.orig
663 $ cat f.orig
677 $ cat f.orig
664 g
678 g
665 $ hg shelve --delete default
679 $ hg shelve --delete default
666
680
681 $ hg shelve --delete --stat
682 abort: options '--delete' and '--stat' may not be used together
683 [255]
684 $ hg shelve --delete --name NAME
685 abort: options '--delete' and '--name' may not be used together
686 [255]
687
667 $ cd ..
688 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now