test-rename
211 lines
| 4.1 KiB
| text/plain
|
TextLexer
/ tests / test-rename
Robin Farine
|
r1512 | #!/bin/sh | ||
hg init | ||||
mkdir d1 d1/d11 d2 | ||||
echo d1/a > d1/a | ||||
echo d1/ba > d1/ba | ||||
echo d1/a1 > d1/d11/a1 | ||||
echo d1/b > d1/b | ||||
echo d2/b > d2/b | ||||
hg add d1/a d1/b d1/ba d1/d11/a1 d2/b | ||||
Thomas Arendsen Hein
|
r1933 | hg commit -m "1" -d "1000000 0" | ||
Robin Farine
|
r1512 | |||
echo "# rename a single file" | ||||
hg rename d1/d11/a1 d2/c | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1565 | echo "# rename --after a single file" | ||
mv d1/d11/a1 d2/c | ||||
hg rename --after d1/d11/a1 d2/c | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1512 | echo "# move a single file to an existing directory" | ||
hg rename d1/d11/a1 d2 | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1565 | echo "# move --after a single file to an existing directory" | ||
mv d1/d11/a1 d2 | ||||
hg rename --after d1/d11/a1 d2 | ||||
hg status | ||||
hg update -C | ||||
echo "# rename a file using a relative path" | ||||
(cd d1/d11; hg rename ../../d2/b e) | ||||
hg status | ||||
hg update -C | ||||
echo "# rename --after a file using a relative path" | ||||
(cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e) | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1512 | echo "# rename directory d1 as d3" | ||
Robin Farine
|
r1565 | hg rename d1/ d3 | ||
hg status | ||||
hg update -C | ||||
echo "# rename --after directory d1 as d3" | ||||
mv d1 d3 | ||||
hg rename --after d1 d3 | ||||
hg status | ||||
hg update -C | ||||
echo "# move a directory using a relative path" | ||||
(cd d2; mkdir d3; hg rename ../d1/d11 d3) | ||||
hg status | ||||
hg update -C | ||||
echo "# move --after a directory using a relative path" | ||||
(cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3) | ||||
Robin Farine
|
r1512 | hg status | ||
hg update -C | ||||
echo "# move directory d1/d11 to an existing directory d2 (removes empty d1)" | ||||
Robin Farine
|
r1565 | hg rename d1/d11/ d2 | ||
Robin Farine
|
r1512 | hg status | ||
hg update -C | ||||
echo "# move directories d1 and d2 to a new directory d3" | ||||
mkdir d3 | ||||
hg rename d1 d2 d3 | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1565 | echo "# move --after directories d1 and d2 to a new directory d3" | ||
mkdir d3 | ||||
mv d1 d2 d3 | ||||
hg rename --after d1 d2 d3 | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1512 | echo "# move everything under directory d1 to existing directory d2, do not" | ||
echo "# overwrite existing files (d2/b)" | ||||
hg rename d1/* d2 | ||||
hg status | ||||
diff d1/b d2/b | ||||
hg update -C | ||||
echo "# attempt to move potentially more than one file into a non-existent" | ||||
echo "# directory" | ||||
hg rename 'glob:d1/**' dx | ||||
echo "# move every file under d1 to d2/d21 (glob)" | ||||
mkdir d2/d21 | ||||
hg rename 'glob:d1/**' d2/d21 | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1565 | echo "# move --after some files under d1 to d2/d21 (glob)" | ||
mkdir d2/d21 | ||||
mv d1/a d1/d11/a1 d2/d21 | ||||
hg rename --after 'glob:d1/**' d2/d21 | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1512 | echo "# move every file under d1 starting with an 'a' to d2/d21 (regexp)" | ||
mkdir d2/d21 | ||||
hg rename 're:d1/([^a][^/]*/)*a.*' d2/d21 | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1513 | |||
echo "# attempt to overwrite an existing file" | ||||
echo "ca" > d1/ca | ||||
hg rename d1/ba d1/ca | ||||
hg status | ||||
hg update -C | ||||
echo "# forced overwrite of an existing file" | ||||
echo "ca" > d1/ca | ||||
hg rename --force d1/ba d1/ca | ||||
hg status | ||||
hg update -C | ||||
echo "# replace a symlink with a file" | ||||
ln -s ba d1/ca | ||||
hg rename --force d1/ba d1/ca | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1514 | |||
echo "# do not copy more than one source file to the same destination file" | ||||
mkdir d3 | ||||
hg rename d1/* d2/* d3 | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1633 | |||
echo "# move a whole subtree with \"hg rename .\"" | ||||
mkdir d3 | ||||
(cd d1; hg rename . ../d3) | ||||
hg status | ||||
hg update -C | ||||
echo "# move a whole subtree with \"hg rename --after .\"" | ||||
mkdir d3 | ||||
mv d1/* d3 | ||||
(cd d1; hg rename --after . ../d3) | ||||
hg status | ||||
hg update -C | ||||
echo "# move the parent tree with \"hg rename ..\"" | ||||
(cd d1/d11; hg rename .. ../../d3) | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1634 | |||
echo "# skip removed files" | ||||
hg remove d1/b | ||||
hg rename d1 d3 | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1747 | |||
echo "# transitive rename" | ||||
hg rename d1/b d1/bb | ||||
hg rename d1/bb d1/bc | ||||
hg status | ||||
hg update -C | ||||
echo "# transitive rename --after" | ||||
hg rename d1/b d1/bb | ||||
mv d1/bb d1/bc | ||||
hg rename --after d1/bb d1/bc | ||||
hg status | ||||
hg update -C | ||||
Robin Farine
|
r1822 | |||
echo "# idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)" | ||||
hg rename d1/b d1/bb | ||||
echo "some stuff added to d1/bb" >> d1/bb | ||||
hg rename d1/bb d1/b | ||||
hg status | ||||
hg debugstate | grep copy | ||||
hg update -C | ||||
Thomas Arendsen Hein
|
r1976 | |||
echo "# check illegal path components" | ||||
hg rename d1/d11/a1 .hg/foo | ||||
hg status | ||||
hg rename d1/d11/a1 ../foo | ||||
hg status | ||||
mv d1/d11/a1 .hg/foo | ||||
hg rename --after d1/d11/a1 .hg/foo | ||||
hg status | ||||
hg update -C | ||||
rm .hg/foo | ||||
hg rename d1/d11/a1 .hg | ||||
hg status | ||||
hg rename d1/d11/a1 .. | ||||
hg status | ||||
mv d1/d11/a1 .hg | ||||
hg rename --after d1/d11/a1 .hg | ||||
hg status | ||||
hg update -C | ||||
rm .hg/a1 | ||||
(cd d1/d11; hg rename ../../d2/b ../../.hg/foo) | ||||
hg status | ||||
(cd d1/d11; hg rename ../../d2/b ../../../foo) | ||||
hg status | ||||