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