##// END OF EJS Templates
rename: do not overwrite existing broken symlinks
rename: do not overwrite existing broken symlinks

File last commit:

r12342:70236d6f stable
r12342:70236d6f stable
Show More
test-rename
267 lines | 5.1 KiB | text/plain | TextLexer
Robin Farine
generalize copy/rename to handle more than one source directory
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
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero....
r1933 hg commit -m "1" -d "1000000 0"
Robin Farine
generalize copy/rename to handle more than one source directory
r1512
echo "# rename a single file"
hg rename d1/d11/a1 d2/c
Matt Mackall
summary: report copies and renames
r11331 hg sum
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d2/c
Robin Farine
generalize copy/rename to handle more than one source directory
r1512
Robin Farine
fix rename --after
r1565 echo "# rename --after a single file"
mv d1/d11/a1 d2/c
hg rename --after d1/d11/a1 d2/c
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
fix rename --after
r1565 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d2/c
Robin Farine
fix rename --after
r1565
Peter Arrenbrecht
rename: make --after work if source is already in R state...
r11223 echo '# rename --after a single file when src and tgt already tracked'
mv d1/d11/a1 d2/c
hg addrem
hg rename --after d1/d11/a1 d2/c
hg status -C
hg update -C
rm d2/c
Steve Losh
cmdutil: Warn when trying to copy/rename --after to a nonexistant file....
r11152 echo "# rename --after a single file to a nonexistant target filename"
hg rename --after d1/a dummy
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 echo "# move a single file to an existing directory"
hg rename d1/d11/a1 d2
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d2/a1
Robin Farine
generalize copy/rename to handle more than one source directory
r1512
Robin Farine
fix rename --after
r1565 echo "# move --after a single file to an existing directory"
mv d1/d11/a1 d2
hg rename --after d1/d11/a1 d2
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
fix rename --after
r1565 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d2/a1
Robin Farine
fix rename --after
r1565
echo "# rename a file using a relative path"
(cd d1/d11; hg rename ../../d2/b e)
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
fix rename --after
r1565 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d1/d11/e
Robin Farine
fix rename --after
r1565
echo "# rename --after a file using a relative path"
(cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e)
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
fix rename --after
r1565 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d1/d11/e
Robin Farine
fix rename --after
r1565
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 echo "# rename directory d1 as d3"
Robin Farine
fix rename --after
r1565 hg rename d1/ d3
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
fix rename --after
r1565 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d3
Robin Farine
fix rename --after
r1565
echo "# rename --after directory d1 as d3"
mv d1 d3
hg rename --after d1 d3
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
fix rename --after
r1565 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d3
Robin Farine
fix rename --after
r1565
echo "# move a directory using a relative path"
(cd d2; mkdir d3; hg rename ../d1/d11 d3)
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
fix rename --after
r1565 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d2/d3
Robin Farine
fix rename --after
r1565
echo "# move --after a directory using a relative path"
(cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3)
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d2/d3
Robin Farine
generalize copy/rename to handle more than one source directory
r1512
echo "# move directory d1/d11 to an existing directory d2 (removes empty d1)"
Robin Farine
fix rename --after
r1565 hg rename d1/d11/ d2
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d2/d11
Robin Farine
generalize copy/rename to handle more than one source directory
r1512
echo "# move directories d1 and d2 to a new directory d3"
mkdir d3
hg rename d1 d2 d3
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d3
Robin Farine
generalize copy/rename to handle more than one source directory
r1512
Robin Farine
fix rename --after
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
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
fix rename --after
r1565 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d3
Robin Farine
fix rename --after
r1565
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 echo "# move everything under directory d1 to existing directory d2, do not"
echo "# overwrite existing files (d2/b)"
hg rename d1/* d2
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 diff d1/b d2/b
hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d2/a d2/ba d2/d11/a1
Robin Farine
generalize copy/rename to handle more than one source directory
r1512
Alexis S. L. Carvalho
copy: if destination ends with "/", make sure it's a directory...
r5329 echo "# attempt to move one file into a non-existent directory"
hg rename d1/a dx/
hg status -C
hg update -C
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 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
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d2/d21
Robin Farine
generalize copy/rename to handle more than one source directory
r1512
Robin Farine
fix rename --after
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
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
fix rename --after
r1565 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d2/d21
Robin Farine
fix rename --after
r1565
Robin Farine
generalize copy/rename to handle more than one source directory
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
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
generalize copy/rename to handle more than one source directory
r1512 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d2/d21
Robin Farine
copy & rename don't overwrite unless --force is specified
r1513
echo "# attempt to overwrite an existing file"
echo "ca" > d1/ca
hg rename d1/ba d1/ca
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
copy & rename don't overwrite unless --force is specified
r1513 hg update -C
echo "# forced overwrite of an existing file"
echo "ca" > d1/ca
hg rename --force d1/ba d1/ca
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
copy & rename don't overwrite unless --force is specified
r1513 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d1/ca
Robin Farine
copy & rename don't overwrite unless --force is specified
r1513
Patrick Mezard
rename: do not overwrite existing broken symlinks
r12342 echo "# attempt to overwrite an existing broken symlink"
ln -s ba d1/ca
hg rename --traceback d1/ba d1/ca
hg status -C
hg update -C
rm d1/ca
Robin Farine
copy & rename don't overwrite unless --force is specified
r1513 echo "# replace a symlink with a file"
ln -s ba d1/ca
hg rename --force d1/ba d1/ca
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
copy & rename don't overwrite unless --force is specified
r1513 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d1/ca
Robin Farine
avoid to copy more than one file to the same destination file
r1514
echo "# do not copy more than one source file to the same destination file"
mkdir d3
hg rename d1/* d2/* d3
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
avoid to copy more than one file to the same destination file
r1514 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d3
Robin Farine
copy/rename '.' or '..' correctly
r1633
echo "# move a whole subtree with \"hg rename .\""
mkdir d3
(cd d1; hg rename . ../d3)
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
copy/rename '.' or '..' correctly
r1633 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d3
Robin Farine
copy/rename '.' or '..' correctly
r1633
echo "# move a whole subtree with \"hg rename --after .\""
mkdir d3
mv d1/* d3
(cd d1; hg rename --after . ../d3)
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
copy/rename '.' or '..' correctly
r1633 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d3
Robin Farine
copy/rename '.' or '..' correctly
r1633
echo "# move the parent tree with \"hg rename ..\""
(cd d1/d11; hg rename .. ../../d3)
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
copy/rename '.' or '..' correctly
r1633 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d3
Robin Farine
copy & rename can ignore removed source files...
r1634
echo "# skip removed files"
hg remove d1/b
hg rename d1 d3
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
copy & rename can ignore removed source files...
r1634 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm -rf d3
Robin Farine
transitive copy/rename...
r1747
echo "# transitive rename"
hg rename d1/b d1/bb
hg rename d1/bb d1/bc
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
transitive copy/rename...
r1747 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d1/bc
Robin Farine
transitive copy/rename...
r1747
echo "# transitive rename --after"
hg rename d1/b d1/bb
mv d1/bb d1/bc
hg rename --after d1/bb d1/bc
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
transitive copy/rename...
r1747 hg update -C
Benoit Boissinot
update --clean: do not unlink added files (issue575)
r8518 rm d1/bc
Robin Farine
copy/rename to a removed destination file...
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
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Robin Farine
copy/rename to a removed destination file...
r1822 hg update -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976
Wagner Bruna
patch: separate reverse copy data (issue1959)
r10466 echo '# overwriting with renames (issue1959)'
hg rename d1/a d1/c
hg rename d1/b d1/a
hg status -C
hg diff --git
hg update -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976 echo "# check illegal path components"
hg rename d1/d11/a1 .hg/foo
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976 hg rename d1/d11/a1 ../foo
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976
mv d1/d11/a1 .hg/foo
hg rename --after d1/d11/a1 .hg/foo
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976 hg update -C
rm .hg/foo
hg rename d1/d11/a1 .hg
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976 hg rename d1/d11/a1 ..
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976
mv d1/d11/a1 .hg
hg rename --after d1/d11/a1 .hg
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976 hg update -C
rm .hg/a1
(cd d1/d11; hg rename ../../d2/b ../../.hg/foo)
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976 (cd d1/d11; hg rename ../../d2/b ../../../foo)
Alexis S. L. Carvalho
test-rename: use hg status -C; don't use hg debugstate | grep copy
r4742 hg status -C
Thomas Arendsen Hein
Enable path validation for copy, rename, debugwalk and other canonpath users....
r1976