##// END OF EJS Templates
fix the cat command...
fix the cat command - improve localrepo.walk when passed a node - make the differents walk commands in commands.py accept a node - change commands.cat to walk over a revision - add a test

File last commit:

r1565:4bcbc126 default
r1582:63799b01 default
Show More
test-rename
136 lines | 2.8 KiB | text/plain | TextLexer
#!/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
hg commit -m "1" -d "0 0"
echo "# rename a single file"
hg rename d1/d11/a1 d2/c
hg status
hg update -C
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
echo "# move a single file to an existing directory"
hg rename d1/d11/a1 d2
hg status
hg update -C
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
echo "# rename directory d1 as d3"
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)
hg status
hg update -C
echo "# move directory d1/d11 to an existing directory d2 (removes empty d1)"
hg rename d1/d11/ d2
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
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
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
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
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
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
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