# HG changeset patch # User Alexis S. L. Carvalho # Date 1183442800 10800 # Node ID 438603c1eb6f41800b08be3e0acc9424dbeeed36 # Parent 4a84f7421692a360508a7a7de392d7f9f9717a52 test-rename: use hg status -C; don't use hg debugstate | grep copy diff --git a/tests/test-rename b/tests/test-rename --- a/tests/test-rename +++ b/tests/test-rename @@ -12,79 +12,79 @@ hg commit -m "1" -d "1000000 0" echo "# rename a single file" hg rename d1/d11/a1 d2/c -hg status +hg status -C 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 status -C hg update -C echo "# move a single file to an existing directory" hg rename d1/d11/a1 d2 -hg status +hg status -C 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 status -C hg update -C echo "# rename a file using a relative path" (cd d1/d11; hg rename ../../d2/b e) -hg status +hg status -C 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 status -C hg update -C echo "# rename directory d1 as d3" hg rename d1/ d3 -hg status +hg status -C hg update -C echo "# rename --after directory d1 as d3" mv d1 d3 hg rename --after d1 d3 -hg status +hg status -C hg update -C echo "# move a directory using a relative path" (cd d2; mkdir d3; hg rename ../d1/d11 d3) -hg status +hg status -C 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 status -C hg update -C echo "# move directory d1/d11 to an existing directory d2 (removes empty d1)" hg rename d1/d11/ d2 -hg status +hg status -C hg update -C echo "# move directories d1 and d2 to a new directory d3" mkdir d3 hg rename d1 d2 d3 -hg status +hg status -C 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 status -C 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 +hg status -C diff d1/b d2/b hg update -C @@ -95,117 +95,116 @@ 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 status -C 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 status -C 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 status -C hg update -C echo "# attempt to overwrite an existing file" echo "ca" > d1/ca hg rename d1/ba d1/ca -hg status +hg status -C hg update -C echo "# forced overwrite of an existing file" echo "ca" > d1/ca hg rename --force d1/ba d1/ca -hg status +hg status -C 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 status -C 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 status -C hg update -C echo "# move a whole subtree with \"hg rename .\"" mkdir d3 (cd d1; hg rename . ../d3) -hg status +hg status -C 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 status -C hg update -C echo "# move the parent tree with \"hg rename ..\"" (cd d1/d11; hg rename .. ../../d3) -hg status +hg status -C hg update -C echo "# skip removed files" hg remove d1/b hg rename d1 d3 -hg status +hg status -C hg update -C echo "# transitive rename" hg rename d1/b d1/bb hg rename d1/bb d1/bc -hg status +hg status -C 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 status -C hg update -C 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 status -C hg update -C echo "# check illegal path components" hg rename d1/d11/a1 .hg/foo -hg status +hg status -C hg rename d1/d11/a1 ../foo -hg status +hg status -C mv d1/d11/a1 .hg/foo hg rename --after d1/d11/a1 .hg/foo -hg status +hg status -C hg update -C rm .hg/foo hg rename d1/d11/a1 .hg -hg status +hg status -C hg rename d1/d11/a1 .. -hg status +hg status -C mv d1/d11/a1 .hg hg rename --after d1/d11/a1 .hg -hg status +hg status -C hg update -C rm .hg/a1 (cd d1/d11; hg rename ../../d2/b ../../.hg/foo) -hg status +hg status -C (cd d1/d11; hg rename ../../d2/b ../../../foo) -hg status +hg status -C diff --git a/tests/test-rename.out b/tests/test-rename.out --- a/tests/test-rename.out +++ b/tests/test-rename.out @@ -1,25 +1,31 @@ # rename a single file A d2/c + d1/d11/a1 R d1/d11/a1 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # rename --after a single file A d2/c + d1/d11/a1 R d1/d11/a1 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # move a single file to an existing directory A d2/a1 + d1/d11/a1 R d1/d11/a1 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # move --after a single file to an existing directory A d2/a1 + d1/d11/a1 R d1/d11/a1 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # rename a file using a relative path A d1/d11/e + d2/b R d2/b 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # rename --after a file using a relative path A d1/d11/e + d2/b R d2/b 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # rename directory d1 as d3 @@ -32,9 +38,13 @@ removing d1/b removing d1/ba removing d1/d11/a1 A d3/a + d1/a A d3/b + d1/b A d3/ba + d1/ba A d3/d11/a1 + d1/d11/a1 R d1/a R d1/b R d1/ba @@ -50,9 +60,13 @@ removing d1/b removing d1/ba removing d1/d11/a1 A d3/a + d1/a A d3/b + d1/b A d3/ba + d1/ba A d3/d11/a1 + d1/d11/a1 R d1/a R d1/b R d1/ba @@ -62,18 +76,21 @@ 4 files updated, 0 files merged, 4 files copying ../d1/d11/a1 to d3/d11/a1 removing ../d1/d11/a1 A d2/d3/d11/a1 + d1/d11/a1 R d1/d11/a1 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # move --after a directory using a relative path copying ../d1/d11/a1 to d3/d11/a1 removing ../d1/d11/a1 A d2/d3/d11/a1 + d1/d11/a1 R d1/d11/a1 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # move directory d1/d11 to an existing directory d2 (removes empty d1) copying d1/d11/a1 to d2/d11/a1 removing d1/d11/a1 A d2/d11/a1 + d1/d11/a1 R d1/d11/a1 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # move directories d1 and d2 to a new directory d3 @@ -88,10 +105,15 @@ removing d1/ba removing d1/d11/a1 removing d2/b A d3/d1/a + d1/a A d3/d1/b + d1/b A d3/d1/ba + d1/ba A d3/d1/d11/a1 + d1/d11/a1 A d3/d2/b + d2/b R d1/a R d1/b R d1/ba @@ -110,10 +132,15 @@ removing d1/ba removing d1/d11/a1 removing d2/b A d3/d1/a + d1/a A d3/d1/b + d1/b A d3/d1/ba + d1/ba A d3/d1/d11/a1 + d1/d11/a1 A d3/d2/b + d2/b R d1/a R d1/b R d1/ba @@ -126,8 +153,11 @@ d2/b: not overwriting - file exists copying d1/d11/a1 to d2/d11/a1 removing d1/d11/a1 A d2/a + d1/a A d2/ba + d1/ba A d2/d11/a1 + d1/d11/a1 R d1/a R d1/ba R d1/d11/a1 @@ -149,9 +179,13 @@ removing d1/b removing d1/ba removing d1/d11/a1 A d2/d21/a + d1/a A d2/d21/a1 + d1/d11/a1 A d2/d21/b + d1/b A d2/d21/ba + d1/ba R d1/a R d1/b R d1/ba @@ -163,7 +197,9 @@ copying d1/d11/a1 to d2/d21/a1 removing d1/a removing d1/d11/a1 A d2/d21/a + d1/a A d2/d21/a1 + d1/d11/a1 R d1/a R d1/d11/a1 2 files updated, 0 files merged, 2 files removed, 0 files unresolved @@ -173,7 +209,9 @@ copying d1/d11/a1 to d2/d21/a1 removing d1/a removing d1/d11/a1 A d2/d21/a + d1/a A d2/d21/a1 + d1/d11/a1 R d1/a R d1/d11/a1 2 files updated, 0 files merged, 2 files removed, 0 files unresolved @@ -183,10 +221,12 @@ d1/ca: not overwriting - file exists 0 files updated, 0 files merged, 0 files removed, 0 files unresolved # forced overwrite of an existing file A d1/ca + d1/ba R d1/ba 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # replace a symlink with a file A d1/ca + d1/ba R d1/ba 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # do not copy more than one source file to the same destination file @@ -194,9 +234,13 @@ copying d1/d11/a1 to d3/d11/a1 d3/b: not overwriting - d2/b collides with d1/b removing d1/d11/a1 A d3/a + d1/a A d3/b + d1/b A d3/ba + d1/ba A d3/d11/a1 + d1/d11/a1 R d1/a R d1/b R d1/ba @@ -212,9 +256,13 @@ removing b removing ba removing d11/a1 A d3/d1/a + d1/a A d3/d1/b + d1/b A d3/d1/ba + d1/ba A d3/d1/d11/a1 + d1/d11/a1 R d1/a R d1/b R d1/ba @@ -230,9 +278,13 @@ removing b removing ba removing d11/a1 A d3/a + d1/a A d3/b + d1/b A d3/ba + d1/ba A d3/d11/a1 + d1/d11/a1 R d1/a R d1/b R d1/ba @@ -248,9 +300,13 @@ removing ../b removing ../ba removing a1 A d3/a + d1/a A d3/b + d1/b A d3/ba + d1/ba A d3/d11/a1 + d1/d11/a1 R d1/a R d1/b R d1/ba @@ -264,8 +320,11 @@ removing d1/a removing d1/ba removing d1/d11/a1 A d3/a + d1/a A d3/ba + d1/ba A d3/d11/a1 + d1/d11/a1 R d1/a R d1/b R d1/ba @@ -273,10 +332,12 @@ R d1/d11/a1 4 files updated, 0 files merged, 3 files removed, 0 files unresolved # transitive rename A d1/bc + d1/b R d1/b 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # transitive rename --after A d1/bc + d1/b R d1/b 1 files updated, 0 files merged, 1 files removed, 0 files unresolved # idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)