author | Matt Mackall <mpm@selenic.com> |
Thu, 08 Oct 2009 01:17:24 -0500 | |
changeset 9570 | 7cea12e70129 |
parent 8518 | 3f4f14eab085 |
child 10466 | d1f209bb9564 |
permissions | -rwxr-xr-x |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
1 |
#!/bin/sh |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
2 |
|
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
3 |
hg init |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
4 |
mkdir d1 d1/d11 d2 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
5 |
echo d1/a > d1/a |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
6 |
echo d1/ba > d1/ba |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
7 |
echo d1/a1 > d1/d11/a1 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
8 |
echo d1/b > d1/b |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
9 |
echo d2/b > d2/b |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
10 |
hg add d1/a d1/b d1/ba d1/d11/a1 d2/b |
1933
7544700fd931
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1822
diff
changeset
|
11 |
hg commit -m "1" -d "1000000 0" |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
12 |
|
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
13 |
echo "# rename a single file" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
14 |
hg rename d1/d11/a1 d2/c |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
15 |
hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
16 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
17 |
rm d2/c |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
18 |
|
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
19 |
echo "# rename --after a single file" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
20 |
mv d1/d11/a1 d2/c |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
21 |
hg rename --after d1/d11/a1 d2/c |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
22 |
hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
23 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
24 |
rm d2/c |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
25 |
|
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
26 |
echo "# move a single file to an existing directory" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
27 |
hg rename d1/d11/a1 d2 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
28 |
hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
29 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
30 |
rm d2/a1 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
31 |
|
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
32 |
echo "# move --after a single file to an existing directory" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
33 |
mv d1/d11/a1 d2 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
34 |
hg rename --after d1/d11/a1 d2 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
35 |
hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
36 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
37 |
rm d2/a1 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
38 |
|
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
39 |
echo "# rename a file using a relative path" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
40 |
(cd d1/d11; hg rename ../../d2/b e) |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
41 |
hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
42 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
43 |
rm d1/d11/e |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
44 |
|
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
45 |
echo "# rename --after a file using a relative path" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
46 |
(cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e) |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
47 |
hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
48 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
49 |
rm d1/d11/e |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
50 |
|
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
51 |
echo "# rename directory d1 as d3" |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
52 |
hg rename d1/ d3 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
53 |
hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
54 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
55 |
rm -rf d3 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
56 |
|
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
57 |
echo "# rename --after directory d1 as d3" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
58 |
mv d1 d3 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
59 |
hg rename --after d1 d3 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
60 |
hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
61 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
62 |
rm -rf d3 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
63 |
|
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
64 |
echo "# move a directory using a relative path" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
65 |
(cd d2; mkdir d3; hg rename ../d1/d11 d3) |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
66 |
hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
67 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
68 |
rm -rf d2/d3 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
69 |
|
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
70 |
echo "# move --after a directory using a relative path" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
71 |
(cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3) |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
72 |
hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
73 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
74 |
rm -rf d2/d3 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
75 |
|
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
76 |
echo "# move directory d1/d11 to an existing directory d2 (removes empty d1)" |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
77 |
hg rename d1/d11/ d2 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
78 |
hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
79 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
80 |
rm -rf d2/d11 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
81 |
|
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
82 |
echo "# move directories d1 and d2 to a new directory d3" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
83 |
mkdir d3 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
84 |
hg rename d1 d2 d3 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
85 |
hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
86 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
87 |
rm -rf d3 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
88 |
|
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
89 |
echo "# move --after directories d1 and d2 to a new directory d3" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
90 |
mkdir d3 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
91 |
mv d1 d2 d3 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
92 |
hg rename --after d1 d2 d3 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
93 |
hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
94 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
95 |
rm -rf d3 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
96 |
|
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
97 |
echo "# move everything under directory d1 to existing directory d2, do not" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
98 |
echo "# overwrite existing files (d2/b)" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
99 |
hg rename d1/* d2 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
100 |
hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
101 |
diff d1/b d2/b |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
102 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
103 |
rm d2/a d2/ba d2/d11/a1 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
104 |
|
5329
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4742
diff
changeset
|
105 |
echo "# attempt to move one file into a non-existent directory" |
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4742
diff
changeset
|
106 |
hg rename d1/a dx/ |
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4742
diff
changeset
|
107 |
hg status -C |
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4742
diff
changeset
|
108 |
hg update -C |
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4742
diff
changeset
|
109 |
|
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
110 |
echo "# attempt to move potentially more than one file into a non-existent" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
111 |
echo "# directory" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
112 |
hg rename 'glob:d1/**' dx |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
113 |
|
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
114 |
echo "# move every file under d1 to d2/d21 (glob)" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
115 |
mkdir d2/d21 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
116 |
hg rename 'glob:d1/**' d2/d21 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
117 |
hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
118 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
119 |
rm -rf d2/d21 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
120 |
|
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
121 |
echo "# move --after some files under d1 to d2/d21 (glob)" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
122 |
mkdir d2/d21 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
123 |
mv d1/a d1/d11/a1 d2/d21 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
124 |
hg rename --after 'glob:d1/**' d2/d21 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
125 |
hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
126 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
127 |
rm -rf d2/d21 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
128 |
|
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
129 |
echo "# move every file under d1 starting with an 'a' to d2/d21 (regexp)" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
130 |
mkdir d2/d21 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
131 |
hg rename 're:d1/([^a][^/]*/)*a.*' d2/d21 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
132 |
hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
133 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
134 |
rm -rf d2/d21 |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
135 |
|
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
136 |
echo "# attempt to overwrite an existing file" |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
137 |
echo "ca" > d1/ca |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
138 |
hg rename d1/ba d1/ca |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
139 |
hg status -C |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
140 |
hg update -C |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
141 |
|
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
142 |
echo "# forced overwrite of an existing file" |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
143 |
echo "ca" > d1/ca |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
144 |
hg rename --force d1/ba d1/ca |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
145 |
hg status -C |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
146 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
147 |
rm d1/ca |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
148 |
|
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
149 |
echo "# replace a symlink with a file" |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
150 |
ln -s ba d1/ca |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
151 |
hg rename --force d1/ba d1/ca |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
152 |
hg status -C |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
153 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
154 |
rm d1/ca |
1514
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
155 |
|
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
156 |
echo "# do not copy more than one source file to the same destination file" |
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
157 |
mkdir d3 |
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
158 |
hg rename d1/* d2/* d3 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
159 |
hg status -C |
1514
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
160 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
161 |
rm -rf d3 |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
162 |
|
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
163 |
echo "# move a whole subtree with \"hg rename .\"" |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
164 |
mkdir d3 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
165 |
(cd d1; hg rename . ../d3) |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
166 |
hg status -C |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
167 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
168 |
rm -rf d3 |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
169 |
|
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
170 |
echo "# move a whole subtree with \"hg rename --after .\"" |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
171 |
mkdir d3 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
172 |
mv d1/* d3 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
173 |
(cd d1; hg rename --after . ../d3) |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
174 |
hg status -C |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
175 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
176 |
rm -rf d3 |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
177 |
|
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
178 |
echo "# move the parent tree with \"hg rename ..\"" |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
179 |
(cd d1/d11; hg rename .. ../../d3) |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
180 |
hg status -C |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
181 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
182 |
rm -rf d3 |
1634
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
183 |
|
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
184 |
echo "# skip removed files" |
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
185 |
hg remove d1/b |
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
186 |
hg rename d1 d3 |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
187 |
hg status -C |
1634
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
188 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
189 |
rm -rf d3 |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
190 |
|
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
191 |
echo "# transitive rename" |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
192 |
hg rename d1/b d1/bb |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
193 |
hg rename d1/bb d1/bc |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
194 |
hg status -C |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
195 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
196 |
rm d1/bc |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
197 |
|
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
198 |
echo "# transitive rename --after" |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
199 |
hg rename d1/b d1/bb |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
200 |
mv d1/bb d1/bc |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
201 |
hg rename --after d1/bb d1/bc |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
202 |
hg status -C |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
203 |
hg update -C |
8518
3f4f14eab085
update --clean: do not unlink added files (issue575)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5329
diff
changeset
|
204 |
rm d1/bc |
1822
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
205 |
|
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
206 |
echo "# idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)" |
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
207 |
hg rename d1/b d1/bb |
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
208 |
echo "some stuff added to d1/bb" >> d1/bb |
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
209 |
hg rename d1/bb d1/b |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
210 |
hg status -C |
1822
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
211 |
hg update -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
212 |
|
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
213 |
echo "# check illegal path components" |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
214 |
|
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
215 |
hg rename d1/d11/a1 .hg/foo |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
216 |
hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
217 |
hg rename d1/d11/a1 ../foo |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
218 |
hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
219 |
|
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
220 |
mv d1/d11/a1 .hg/foo |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
221 |
hg rename --after d1/d11/a1 .hg/foo |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
222 |
hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
223 |
hg update -C |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
224 |
rm .hg/foo |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
225 |
|
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
226 |
hg rename d1/d11/a1 .hg |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
227 |
hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
228 |
hg rename d1/d11/a1 .. |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
229 |
hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
230 |
|
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
231 |
mv d1/d11/a1 .hg |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
232 |
hg rename --after d1/d11/a1 .hg |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
233 |
hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
234 |
hg update -C |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
235 |
rm .hg/a1 |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
236 |
|
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
237 |
(cd d1/d11; hg rename ../../d2/b ../../.hg/foo) |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
238 |
hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
239 |
(cd d1/d11; hg rename ../../d2/b ../../../foo) |
4742
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
240 |
hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
241 |