##// END OF EJS Templates
test-rename: test with absolute paths
Martin Geisler -
r12898:f2fd9090 stable
parent child Browse files
Show More
@@ -1,621 +1,632 b''
1 1 $ hg init
2 2 $ mkdir d1 d1/d11 d2
3 3 $ echo d1/a > d1/a
4 4 $ echo d1/ba > d1/ba
5 5 $ echo d1/a1 > d1/d11/a1
6 6 $ echo d1/b > d1/b
7 7 $ echo d2/b > d2/b
8 8 $ hg add d1/a d1/b d1/ba d1/d11/a1 d2/b
9 9 $ hg commit -m "1"
10 10
11 11 rename a single file
12 12
13 13 $ hg rename d1/d11/a1 d2/c
14 14 $ hg sum
15 15 parent: 0:9b4b6e7b2c26 tip
16 16 1
17 17 branch: default
18 18 commit: 1 renamed
19 19 update: (current)
20 20 $ hg status -C
21 21 A d2/c
22 22 d1/d11/a1
23 23 R d1/d11/a1
24 24 $ hg update -C
25 25 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
26 26 $ rm d2/c
27 27
28 rename a single file using absolute paths
29
30 $ hg rename `pwd`/d1/d11/a1 `pwd`/d2/c
31 $ hg status -C
32 A d2/c
33 d1/d11/a1
34 R d1/d11/a1
35 $ hg update -C
36 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
37 $ rm d2/c
38
28 39 rename --after a single file
29 40
30 41 $ mv d1/d11/a1 d2/c
31 42 $ hg rename --after d1/d11/a1 d2/c
32 43 $ hg status -C
33 44 A d2/c
34 45 d1/d11/a1
35 46 R d1/d11/a1
36 47 $ hg update -C
37 48 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
38 49 $ rm d2/c
39 50
40 51 rename --after a single file when src and tgt already tracked
41 52
42 53 $ mv d1/d11/a1 d2/c
43 54 $ hg addrem -s 0
44 55 removing d1/d11/a1
45 56 adding d2/c
46 57 $ hg rename --after d1/d11/a1 d2/c
47 58 $ hg status -C
48 59 A d2/c
49 60 d1/d11/a1
50 61 R d1/d11/a1
51 62 $ hg update -C
52 63 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
53 64 $ rm d2/c
54 65
55 66 rename --after a single file to a nonexistant target filename
56 67
57 68 $ hg rename --after d1/a dummy
58 69 d1/a: not recording move - dummy does not exist
59 70
60 71 move a single file to an existing directory
61 72
62 73 $ hg rename d1/d11/a1 d2
63 74 $ hg status -C
64 75 A d2/a1
65 76 d1/d11/a1
66 77 R d1/d11/a1
67 78 $ hg update -C
68 79 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
69 80 $ rm d2/a1
70 81
71 82 move --after a single file to an existing directory
72 83
73 84 $ mv d1/d11/a1 d2
74 85 $ hg rename --after d1/d11/a1 d2
75 86 $ hg status -C
76 87 A d2/a1
77 88 d1/d11/a1
78 89 R d1/d11/a1
79 90 $ hg update -C
80 91 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
81 92 $ rm d2/a1
82 93
83 94 rename a file using a relative path
84 95
85 96 $ (cd d1/d11; hg rename ../../d2/b e)
86 97 $ hg status -C
87 98 A d1/d11/e
88 99 d2/b
89 100 R d2/b
90 101 $ hg update -C
91 102 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
92 103 $ rm d1/d11/e
93 104
94 105 rename --after a file using a relative path
95 106
96 107 $ (cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e)
97 108 $ hg status -C
98 109 A d1/d11/e
99 110 d2/b
100 111 R d2/b
101 112 $ hg update -C
102 113 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
103 114 $ rm d1/d11/e
104 115
105 116 rename directory d1 as d3
106 117
107 118 $ hg rename d1/ d3
108 119 moving d1/a to d3/a
109 120 moving d1/b to d3/b
110 121 moving d1/ba to d3/ba
111 122 moving d1/d11/a1 to d3/d11/a1
112 123 $ hg status -C
113 124 A d3/a
114 125 d1/a
115 126 A d3/b
116 127 d1/b
117 128 A d3/ba
118 129 d1/ba
119 130 A d3/d11/a1
120 131 d1/d11/a1
121 132 R d1/a
122 133 R d1/b
123 134 R d1/ba
124 135 R d1/d11/a1
125 136 $ hg update -C
126 137 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
127 138 $ rm -rf d3
128 139
129 140 rename --after directory d1 as d3
130 141
131 142 $ mv d1 d3
132 143 $ hg rename --after d1 d3
133 144 moving d1/a to d3/a
134 145 moving d1/b to d3/b
135 146 moving d1/ba to d3/ba
136 147 moving d1/d11/a1 to d3/d11/a1
137 148 $ hg status -C
138 149 A d3/a
139 150 d1/a
140 151 A d3/b
141 152 d1/b
142 153 A d3/ba
143 154 d1/ba
144 155 A d3/d11/a1
145 156 d1/d11/a1
146 157 R d1/a
147 158 R d1/b
148 159 R d1/ba
149 160 R d1/d11/a1
150 161 $ hg update -C
151 162 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
152 163 $ rm -rf d3
153 164
154 165 move a directory using a relative path
155 166
156 167 $ (cd d2; mkdir d3; hg rename ../d1/d11 d3)
157 168 moving ../d1/d11/a1 to d3/d11/a1
158 169 $ hg status -C
159 170 A d2/d3/d11/a1
160 171 d1/d11/a1
161 172 R d1/d11/a1
162 173 $ hg update -C
163 174 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
164 175 $ rm -rf d2/d3
165 176
166 177 move --after a directory using a relative path
167 178
168 179 $ (cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3)
169 180 moving ../d1/d11/a1 to d3/d11/a1
170 181 $ hg status -C
171 182 A d2/d3/d11/a1
172 183 d1/d11/a1
173 184 R d1/d11/a1
174 185 $ hg update -C
175 186 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
176 187 $ rm -rf d2/d3
177 188
178 189 move directory d1/d11 to an existing directory d2 (removes empty d1)
179 190
180 191 $ hg rename d1/d11/ d2
181 192 moving d1/d11/a1 to d2/d11/a1
182 193 $ hg status -C
183 194 A d2/d11/a1
184 195 d1/d11/a1
185 196 R d1/d11/a1
186 197 $ hg update -C
187 198 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
188 199 $ rm -rf d2/d11
189 200
190 201 move directories d1 and d2 to a new directory d3
191 202
192 203 $ mkdir d3
193 204 $ hg rename d1 d2 d3
194 205 moving d1/a to d3/d1/a
195 206 moving d1/b to d3/d1/b
196 207 moving d1/ba to d3/d1/ba
197 208 moving d1/d11/a1 to d3/d1/d11/a1
198 209 moving d2/b to d3/d2/b
199 210 $ hg status -C
200 211 A d3/d1/a
201 212 d1/a
202 213 A d3/d1/b
203 214 d1/b
204 215 A d3/d1/ba
205 216 d1/ba
206 217 A d3/d1/d11/a1
207 218 d1/d11/a1
208 219 A d3/d2/b
209 220 d2/b
210 221 R d1/a
211 222 R d1/b
212 223 R d1/ba
213 224 R d1/d11/a1
214 225 R d2/b
215 226 $ hg update -C
216 227 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
217 228 $ rm -rf d3
218 229
219 230 move --after directories d1 and d2 to a new directory d3
220 231
221 232 $ mkdir d3
222 233 $ mv d1 d2 d3
223 234 $ hg rename --after d1 d2 d3
224 235 moving d1/a to d3/d1/a
225 236 moving d1/b to d3/d1/b
226 237 moving d1/ba to d3/d1/ba
227 238 moving d1/d11/a1 to d3/d1/d11/a1
228 239 moving d2/b to d3/d2/b
229 240 $ hg status -C
230 241 A d3/d1/a
231 242 d1/a
232 243 A d3/d1/b
233 244 d1/b
234 245 A d3/d1/ba
235 246 d1/ba
236 247 A d3/d1/d11/a1
237 248 d1/d11/a1
238 249 A d3/d2/b
239 250 d2/b
240 251 R d1/a
241 252 R d1/b
242 253 R d1/ba
243 254 R d1/d11/a1
244 255 R d2/b
245 256 $ hg update -C
246 257 5 files updated, 0 files merged, 0 files removed, 0 files unresolved
247 258 $ rm -rf d3
248 259
249 260 move everything under directory d1 to existing directory d2, do not
250 261 overwrite existing files (d2/b)
251 262
252 263 $ hg rename d1/* d2
253 264 d2/b: not overwriting - file exists
254 265 moving d1/d11/a1 to d2/d11/a1
255 266 $ hg status -C
256 267 A d2/a
257 268 d1/a
258 269 A d2/ba
259 270 d1/ba
260 271 A d2/d11/a1
261 272 d1/d11/a1
262 273 R d1/a
263 274 R d1/ba
264 275 R d1/d11/a1
265 276 $ diff -u d1/b d2/b
266 277 --- d1/b * (glob)
267 278 +++ d2/b * (glob)
268 279 @@ * (glob)
269 280 -d1/b
270 281 +d2/b
271 282 [1]
272 283 $ hg update -C
273 284 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
274 285 $ rm d2/a d2/ba d2/d11/a1
275 286
276 287 attempt to move one file into a non-existent directory
277 288
278 289 $ hg rename d1/a dx/
279 290 abort: destination dx/ is not a directory
280 291 [255]
281 292 $ hg status -C
282 293 $ hg update -C
283 294 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
284 295
285 296 attempt to move potentially more than one file into a non-existent directory
286 297
287 298 $ hg rename 'glob:d1/**' dx
288 299 abort: with multiple sources, destination must be an existing directory
289 300 [255]
290 301
291 302 move every file under d1 to d2/d21 (glob)
292 303
293 304 $ mkdir d2/d21
294 305 $ hg rename 'glob:d1/**' d2/d21
295 306 moving d1/a to d2/d21/a
296 307 moving d1/b to d2/d21/b
297 308 moving d1/ba to d2/d21/ba
298 309 moving d1/d11/a1 to d2/d21/a1
299 310 $ hg status -C
300 311 A d2/d21/a
301 312 d1/a
302 313 A d2/d21/a1
303 314 d1/d11/a1
304 315 A d2/d21/b
305 316 d1/b
306 317 A d2/d21/ba
307 318 d1/ba
308 319 R d1/a
309 320 R d1/b
310 321 R d1/ba
311 322 R d1/d11/a1
312 323 $ hg update -C
313 324 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
314 325 $ rm -rf d2/d21
315 326
316 327 move --after some files under d1 to d2/d21 (glob)
317 328
318 329 $ mkdir d2/d21
319 330 $ mv d1/a d1/d11/a1 d2/d21
320 331 $ hg rename --after 'glob:d1/**' d2/d21
321 332 moving d1/a to d2/d21/a
322 333 d1/b: not recording move - d2/d21/b does not exist
323 334 d1/ba: not recording move - d2/d21/ba does not exist
324 335 moving d1/d11/a1 to d2/d21/a1
325 336 $ hg status -C
326 337 A d2/d21/a
327 338 d1/a
328 339 A d2/d21/a1
329 340 d1/d11/a1
330 341 R d1/a
331 342 R d1/d11/a1
332 343 $ hg update -C
333 344 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
334 345 $ rm -rf d2/d21
335 346
336 347 move every file under d1 starting with an 'a' to d2/d21 (regexp)
337 348
338 349 $ mkdir d2/d21
339 350 $ hg rename 're:d1/([^a][^/]*/)*a.*' d2/d21
340 351 moving d1/a to d2/d21/a
341 352 moving d1/d11/a1 to d2/d21/a1
342 353 $ hg status -C
343 354 A d2/d21/a
344 355 d1/a
345 356 A d2/d21/a1
346 357 d1/d11/a1
347 358 R d1/a
348 359 R d1/d11/a1
349 360 $ hg update -C
350 361 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
351 362 $ rm -rf d2/d21
352 363
353 364 attempt to overwrite an existing file
354 365
355 366 $ echo "ca" > d1/ca
356 367 $ hg rename d1/ba d1/ca
357 368 d1/ca: not overwriting - file exists
358 369 $ hg status -C
359 370 ? d1/ca
360 371 $ hg update -C
361 372 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
362 373
363 374 forced overwrite of an existing file
364 375
365 376 $ echo "ca" > d1/ca
366 377 $ hg rename --force d1/ba d1/ca
367 378 $ hg status -C
368 379 A d1/ca
369 380 d1/ba
370 381 R d1/ba
371 382 $ hg update -C
372 383 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
373 384 $ rm d1/ca
374 385
375 386 attempt to overwrite an existing broken symlink
376 387
377 388 $ ln -s ba d1/ca
378 389 $ hg rename --traceback d1/ba d1/ca
379 390 d1/ca: not overwriting - file exists
380 391 $ hg status -C
381 392 ? d1/ca
382 393 $ hg update -C
383 394 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
384 395 $ rm d1/ca
385 396
386 397 replace a symlink with a file
387 398
388 399 $ ln -s ba d1/ca
389 400 $ hg rename --force d1/ba d1/ca
390 401 $ hg status -C
391 402 A d1/ca
392 403 d1/ba
393 404 R d1/ba
394 405 $ hg update -C
395 406 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
396 407 $ rm d1/ca
397 408
398 409 do not copy more than one source file to the same destination file
399 410
400 411 $ mkdir d3
401 412 $ hg rename d1/* d2/* d3
402 413 moving d1/d11/a1 to d3/d11/a1
403 414 d3/b: not overwriting - d2/b collides with d1/b
404 415 $ hg status -C
405 416 A d3/a
406 417 d1/a
407 418 A d3/b
408 419 d1/b
409 420 A d3/ba
410 421 d1/ba
411 422 A d3/d11/a1
412 423 d1/d11/a1
413 424 R d1/a
414 425 R d1/b
415 426 R d1/ba
416 427 R d1/d11/a1
417 428 $ hg update -C
418 429 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
419 430 $ rm -rf d3
420 431
421 432 move a whole subtree with "hg rename ."
422 433
423 434 $ mkdir d3
424 435 $ (cd d1; hg rename . ../d3)
425 436 moving a to ../d3/d1/a
426 437 moving b to ../d3/d1/b
427 438 moving ba to ../d3/d1/ba
428 439 moving d11/a1 to ../d3/d1/d11/a1
429 440 $ hg status -C
430 441 A d3/d1/a
431 442 d1/a
432 443 A d3/d1/b
433 444 d1/b
434 445 A d3/d1/ba
435 446 d1/ba
436 447 A d3/d1/d11/a1
437 448 d1/d11/a1
438 449 R d1/a
439 450 R d1/b
440 451 R d1/ba
441 452 R d1/d11/a1
442 453 $ hg update -C
443 454 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
444 455 $ rm -rf d3
445 456
446 457 move a whole subtree with "hg rename --after ."
447 458
448 459 $ mkdir d3
449 460 $ mv d1/* d3
450 461 $ (cd d1; hg rename --after . ../d3)
451 462 moving a to ../d3/a
452 463 moving b to ../d3/b
453 464 moving ba to ../d3/ba
454 465 moving d11/a1 to ../d3/d11/a1
455 466 $ hg status -C
456 467 A d3/a
457 468 d1/a
458 469 A d3/b
459 470 d1/b
460 471 A d3/ba
461 472 d1/ba
462 473 A d3/d11/a1
463 474 d1/d11/a1
464 475 R d1/a
465 476 R d1/b
466 477 R d1/ba
467 478 R d1/d11/a1
468 479 $ hg update -C
469 480 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
470 481 $ rm -rf d3
471 482
472 483 move the parent tree with "hg rename .."
473 484
474 485 $ (cd d1/d11; hg rename .. ../../d3)
475 486 moving ../a to ../../d3/a
476 487 moving ../b to ../../d3/b
477 488 moving ../ba to ../../d3/ba
478 489 moving a1 to ../../d3/d11/a1
479 490 $ hg status -C
480 491 A d3/a
481 492 d1/a
482 493 A d3/b
483 494 d1/b
484 495 A d3/ba
485 496 d1/ba
486 497 A d3/d11/a1
487 498 d1/d11/a1
488 499 R d1/a
489 500 R d1/b
490 501 R d1/ba
491 502 R d1/d11/a1
492 503 $ hg update -C
493 504 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
494 505 $ rm -rf d3
495 506
496 507 skip removed files
497 508
498 509 $ hg remove d1/b
499 510 $ hg rename d1 d3
500 511 moving d1/a to d3/a
501 512 moving d1/ba to d3/ba
502 513 moving d1/d11/a1 to d3/d11/a1
503 514 $ hg status -C
504 515 A d3/a
505 516 d1/a
506 517 A d3/ba
507 518 d1/ba
508 519 A d3/d11/a1
509 520 d1/d11/a1
510 521 R d1/a
511 522 R d1/b
512 523 R d1/ba
513 524 R d1/d11/a1
514 525 $ hg update -C
515 526 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
516 527 $ rm -rf d3
517 528
518 529 transitive rename
519 530
520 531 $ hg rename d1/b d1/bb
521 532 $ hg rename d1/bb d1/bc
522 533 $ hg status -C
523 534 A d1/bc
524 535 d1/b
525 536 R d1/b
526 537 $ hg update -C
527 538 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
528 539 $ rm d1/bc
529 540
530 541 transitive rename --after
531 542
532 543 $ hg rename d1/b d1/bb
533 544 $ mv d1/bb d1/bc
534 545 $ hg rename --after d1/bb d1/bc
535 546 $ hg status -C
536 547 A d1/bc
537 548 d1/b
538 549 R d1/b
539 550 $ hg update -C
540 551 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
541 552 $ rm d1/bc
542 553
543 554 $ echo "# idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)"
544 555 # idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)
545 556 $ hg rename d1/b d1/bb
546 557 $ echo "some stuff added to d1/bb" >> d1/bb
547 558 $ hg rename d1/bb d1/b
548 559 $ hg status -C
549 560 M d1/b
550 561 $ hg update -C
551 562 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
552 563
553 564 overwriting with renames (issue1959)
554 565
555 566 $ hg rename d1/a d1/c
556 567 $ hg rename d1/b d1/a
557 568 $ hg status -C
558 569 A d1/a
559 570 d1/b
560 571 A d1/c
561 572 d1/a
562 573 R d1/b
563 574 $ hg diff --git
564 575 diff --git a/d1/b b/d1/a
565 576 rename from d1/b
566 577 rename to d1/a
567 578 diff --git a/d1/a b/d1/c
568 579 copy from d1/a
569 580 copy to d1/c
570 581 $ hg update -C
571 582 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
572 583
573 584 check illegal path components
574 585
575 586 $ hg rename d1/d11/a1 .hg/foo
576 587 abort: path contains illegal component: .hg/foo
577 588 [255]
578 589 $ hg status -C
579 590 $ hg rename d1/d11/a1 ../foo
580 591 abort: ../foo not under root
581 592 [255]
582 593 $ hg status -C
583 594
584 595 $ mv d1/d11/a1 .hg/foo
585 596 $ hg rename --after d1/d11/a1 .hg/foo
586 597 abort: path contains illegal component: .hg/foo
587 598 [255]
588 599 $ hg status -C
589 600 ! d1/d11/a1
590 601 $ hg update -C
591 602 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
592 603 $ rm .hg/foo
593 604
594 605 $ hg rename d1/d11/a1 .hg
595 606 abort: path contains illegal component: .hg/a1
596 607 [255]
597 608 $ hg status -C
598 609 $ hg rename d1/d11/a1 ..
599 610 abort: ../a1 not under root
600 611 [255]
601 612 $ hg status -C
602 613
603 614 $ mv d1/d11/a1 .hg
604 615 $ hg rename --after d1/d11/a1 .hg
605 616 abort: path contains illegal component: .hg/a1
606 617 [255]
607 618 $ hg status -C
608 619 ! d1/d11/a1
609 620 $ hg update -C
610 621 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
611 622 $ rm .hg/a1
612 623
613 624 $ (cd d1/d11; hg rename ../../d2/b ../../.hg/foo)
614 625 abort: path contains illegal component: .hg/foo
615 626 [255]
616 627 $ hg status -C
617 628 $ (cd d1/d11; hg rename ../../d2/b ../../../foo)
618 629 abort: ../../../foo not under root
619 630 [255]
620 631 $ hg status -C
621 632
General Comments 0
You need to be logged in to leave comments. Login now