Show More
This diff has been collapsed as it changes many lines, (777 lines changed) Show them Hide them | |||||
@@ -1,260 +1,599 b'' | |||||
1 | #!/bin/sh |
|
1 | $ hg init | |
|
2 | $ mkdir d1 d1/d11 d2 | |||
|
3 | $ echo d1/a > d1/a | |||
|
4 | $ echo d1/ba > d1/ba | |||
|
5 | $ echo d1/a1 > d1/d11/a1 | |||
|
6 | $ echo d1/b > d1/b | |||
|
7 | $ echo d2/b > d2/b | |||
|
8 | $ hg add d1/a d1/b d1/ba d1/d11/a1 d2/b | |||
|
9 | $ hg commit -m "1" -d "1000000 0" | |||
|
10 | ||||
|
11 | rename a single file | |||
2 |
|
12 | |||
3 | hg init |
|
13 | $ hg rename d1/d11/a1 d2/c | |
4 | mkdir d1 d1/d11 d2 |
|
14 | $ hg sum | |
5 | echo d1/a > d1/a |
|
15 | parent: 0:6f9914c7a010 tip | |
6 | echo d1/ba > d1/ba |
|
16 | 1 | |
7 | echo d1/a1 > d1/d11/a1 |
|
17 | branch: default | |
8 | echo d1/b > d1/b |
|
18 | commit: 1 renamed | |
9 | echo d2/b > d2/b |
|
19 | update: (current) | |
10 | hg add d1/a d1/b d1/ba d1/d11/a1 d2/b |
|
20 | $ hg status -C | |
11 | hg commit -m "1" -d "1000000 0" |
|
21 | A d2/c | |
|
22 | d1/d11/a1 | |||
|
23 | R d1/d11/a1 | |||
|
24 | $ hg update -C | |||
|
25 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
26 | $ rm d2/c | |||
|
27 | ||||
|
28 | rename --after a single file | |||
12 |
|
29 | |||
13 | echo "# rename a single file" |
|
30 | $ mv d1/d11/a1 d2/c | |
14 | hg rename d1/d11/a1 d2/c |
|
31 | $ hg rename --after d1/d11/a1 d2/c | |
15 | hg sum |
|
32 | $ hg status -C | |
16 | hg status -C |
|
33 | A d2/c | |
17 | hg update -C |
|
34 | d1/d11/a1 | |
18 | rm d2/c |
|
35 | R d1/d11/a1 | |
|
36 | $ hg update -C | |||
|
37 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
38 | $ rm d2/c | |||
|
39 | ||||
|
40 | rename --after a single file when src and tgt already tracked | |||
19 |
|
41 | |||
20 | echo "# rename --after a single file" |
|
42 | $ mv d1/d11/a1 d2/c | |
21 | mv d1/d11/a1 d2/c |
|
43 | $ hg addrem -s 0 | |
22 | hg rename --after d1/d11/a1 d2/c |
|
44 | removing d1/d11/a1 | |
23 | hg status -C |
|
45 | adding d2/c | |
24 | hg update -C |
|
46 | $ hg rename --after d1/d11/a1 d2/c | |
25 | rm d2/c |
|
47 | $ hg status -C | |
|
48 | A d2/c | |||
|
49 | d1/d11/a1 | |||
|
50 | R d1/d11/a1 | |||
|
51 | $ hg update -C | |||
|
52 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
53 | $ rm d2/c | |||
|
54 | ||||
|
55 | rename --after a single file to a nonexistant target filename | |||
|
56 | ||||
|
57 | $ hg rename --after d1/a dummy | |||
|
58 | d1/a: not recording move - dummy does not exist | |||
|
59 | ||||
|
60 | move a single file to an existing directory | |||
26 |
|
61 | |||
27 | echo '# rename --after a single file when src and tgt already tracked' |
|
62 | $ hg rename d1/d11/a1 d2 | |
28 | mv d1/d11/a1 d2/c |
|
63 | $ hg status -C | |
29 | hg addrem -s 0 |
|
64 | A d2/a1 | |
30 | hg rename --after d1/d11/a1 d2/c |
|
65 | d1/d11/a1 | |
31 | hg status -C |
|
66 | R d1/d11/a1 | |
32 | hg update -C |
|
67 | $ hg update -C | |
33 | rm d2/c |
|
68 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
69 | $ rm d2/a1 | |||
|
70 | ||||
|
71 | move --after a single file to an existing directory | |||
34 |
|
72 | |||
35 | echo "# rename --after a single file to a nonexistant target filename" |
|
73 | $ mv d1/d11/a1 d2 | |
36 |
hg rename --after d1/ |
|
74 | $ hg rename --after d1/d11/a1 d2 | |
|
75 | $ hg status -C | |||
|
76 | A d2/a1 | |||
|
77 | d1/d11/a1 | |||
|
78 | R d1/d11/a1 | |||
|
79 | $ hg update -C | |||
|
80 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
81 | $ rm d2/a1 | |||
37 |
|
82 | |||
38 | echo "# move a single file to an existing directory" |
|
83 | rename a file using a relative path | |
39 | hg rename d1/d11/a1 d2 |
|
84 | ||
40 | hg status -C |
|
85 | $ (cd d1/d11; hg rename ../../d2/b e) | |
41 | hg update -C |
|
86 | $ hg status -C | |
42 | rm d2/a1 |
|
87 | A d1/d11/e | |
|
88 | d2/b | |||
|
89 | R d2/b | |||
|
90 | $ hg update -C | |||
|
91 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
92 | $ rm d1/d11/e | |||
|
93 | ||||
|
94 | rename --after a file using a relative path | |||
43 |
|
95 | |||
44 | echo "# move --after a single file to an existing directory" |
|
96 | $ (cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e) | |
45 | mv d1/d11/a1 d2 |
|
97 | $ hg status -C | |
46 | hg rename --after d1/d11/a1 d2 |
|
98 | A d1/d11/e | |
47 | hg status -C |
|
99 | d2/b | |
48 | hg update -C |
|
100 | R d2/b | |
49 | rm d2/a1 |
|
101 | $ hg update -C | |
|
102 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
103 | $ rm d1/d11/e | |||
|
104 | ||||
|
105 | rename directory d1 as d3 | |||
50 |
|
106 | |||
51 | echo "# rename a file using a relative path" |
|
107 | $ hg rename d1/ d3 | |
52 | (cd d1/d11; hg rename ../../d2/b e) |
|
108 | moving d1/a to d3/a | |
53 | hg status -C |
|
109 | moving d1/b to d3/b | |
54 | hg update -C |
|
110 | moving d1/ba to d3/ba | |
55 | rm d1/d11/e |
|
111 | moving d1/d11/a1 to d3/d11/a1 | |
|
112 | $ hg status -C | |||
|
113 | A d3/a | |||
|
114 | d1/a | |||
|
115 | A d3/b | |||
|
116 | d1/b | |||
|
117 | A d3/ba | |||
|
118 | d1/ba | |||
|
119 | A d3/d11/a1 | |||
|
120 | d1/d11/a1 | |||
|
121 | R d1/a | |||
|
122 | R d1/b | |||
|
123 | R d1/ba | |||
|
124 | R d1/d11/a1 | |||
|
125 | $ hg update -C | |||
|
126 | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
127 | $ rm -rf d3 | |||
56 |
|
128 | |||
57 | echo "# rename --after a file using a relative path" |
|
129 | rename --after directory d1 as d3 | |
58 | (cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e) |
|
|||
59 | hg status -C |
|
|||
60 | hg update -C |
|
|||
61 | rm d1/d11/e |
|
|||
62 |
|
130 | |||
63 | echo "# rename directory d1 as d3" |
|
131 | $ mv d1 d3 | |
64 |
hg rename d1 |
|
132 | $ hg rename --after d1 d3 | |
65 | hg status -C |
|
133 | moving d1/a to d3/a | |
66 | hg update -C |
|
134 | moving d1/b to d3/b | |
67 | rm -rf d3 |
|
135 | moving d1/ba to d3/ba | |
|
136 | moving d1/d11/a1 to d3/d11/a1 | |||
|
137 | $ hg status -C | |||
|
138 | A d3/a | |||
|
139 | d1/a | |||
|
140 | A d3/b | |||
|
141 | d1/b | |||
|
142 | A d3/ba | |||
|
143 | d1/ba | |||
|
144 | A d3/d11/a1 | |||
|
145 | d1/d11/a1 | |||
|
146 | R d1/a | |||
|
147 | R d1/b | |||
|
148 | R d1/ba | |||
|
149 | R d1/d11/a1 | |||
|
150 | $ hg update -C | |||
|
151 | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
152 | $ rm -rf d3 | |||
68 |
|
153 | |||
69 | echo "# rename --after directory d1 as d3" |
|
154 | move a directory using a relative path | |
70 | mv d1 d3 |
|
|||
71 | hg rename --after d1 d3 |
|
|||
72 | hg status -C |
|
|||
73 | hg update -C |
|
|||
74 | rm -rf d3 |
|
|||
75 |
|
155 | |||
76 | echo "# move a directory using a relative path" |
|
156 | $ (cd d2; mkdir d3; hg rename ../d1/d11 d3) | |
77 | (cd d2; mkdir d3; hg rename ../d1/d11 d3) |
|
157 | moving ../d1/d11/a1 to d3/d11/a1 | |
78 | hg status -C |
|
158 | $ hg status -C | |
79 | hg update -C |
|
159 | A d2/d3/d11/a1 | |
80 | rm -rf d2/d3 |
|
160 | d1/d11/a1 | |
|
161 | R d1/d11/a1 | |||
|
162 | $ hg update -C | |||
|
163 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
164 | $ rm -rf d2/d3 | |||
|
165 | ||||
|
166 | move --after a directory using a relative path | |||
81 |
|
167 | |||
82 | echo "# move --after a directory using a relative path" |
|
168 | $ (cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3) | |
83 | (cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3) |
|
169 | moving ../d1/d11/a1 to d3/d11/a1 | |
84 | hg status -C |
|
170 | $ hg status -C | |
85 | hg update -C |
|
171 | A d2/d3/d11/a1 | |
86 | rm -rf d2/d3 |
|
172 | d1/d11/a1 | |
|
173 | R d1/d11/a1 | |||
|
174 | $ hg update -C | |||
|
175 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
176 | $ rm -rf d2/d3 | |||
|
177 | ||||
|
178 | move directory d1/d11 to an existing directory d2 (removes empty d1) | |||
87 |
|
179 | |||
88 | echo "# move directory d1/d11 to an existing directory d2 (removes empty d1)" |
|
180 | $ hg rename d1/d11/ d2 | |
89 | hg rename d1/d11/ d2 |
|
181 | moving d1/d11/a1 to d2/d11/a1 | |
90 | hg status -C |
|
182 | $ hg status -C | |
91 | hg update -C |
|
183 | A d2/d11/a1 | |
92 | rm -rf d2/d11 |
|
184 | d1/d11/a1 | |
|
185 | R d1/d11/a1 | |||
|
186 | $ hg update -C | |||
|
187 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
188 | $ rm -rf d2/d11 | |||
|
189 | ||||
|
190 | move directories d1 and d2 to a new directory d3 | |||
93 |
|
191 | |||
94 | echo "# move directories d1 and d2 to a new directory d3" |
|
192 | $ mkdir d3 | |
95 | mkdir d3 |
|
193 | $ hg rename d1 d2 d3 | |
96 | hg rename d1 d2 d3 |
|
194 | moving d1/a to d3/d1/a | |
97 | hg status -C |
|
195 | moving d1/b to d3/d1/b | |
98 | hg update -C |
|
196 | moving d1/ba to d3/d1/ba | |
99 | rm -rf d3 |
|
197 | moving d1/d11/a1 to d3/d1/d11/a1 | |
|
198 | moving d2/b to d3/d2/b | |||
|
199 | $ hg status -C | |||
|
200 | A d3/d1/a | |||
|
201 | d1/a | |||
|
202 | A d3/d1/b | |||
|
203 | d1/b | |||
|
204 | A d3/d1/ba | |||
|
205 | d1/ba | |||
|
206 | A d3/d1/d11/a1 | |||
|
207 | d1/d11/a1 | |||
|
208 | A d3/d2/b | |||
|
209 | d2/b | |||
|
210 | R d1/a | |||
|
211 | R d1/b | |||
|
212 | R d1/ba | |||
|
213 | R d1/d11/a1 | |||
|
214 | R d2/b | |||
|
215 | $ hg update -C | |||
|
216 | 5 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
217 | $ rm -rf d3 | |||
100 |
|
218 | |||
101 |
|
|
219 | move --after directories d1 and d2 to a new directory d3 | |
102 | mkdir d3 |
|
|||
103 | mv d1 d2 d3 |
|
|||
104 | hg rename --after d1 d2 d3 |
|
|||
105 | hg status -C |
|
|||
106 | hg update -C |
|
|||
107 | rm -rf d3 |
|
|||
108 |
|
220 | |||
109 | echo "# move everything under directory d1 to existing directory d2, do not" |
|
221 | $ mkdir d3 | |
110 | echo "# overwrite existing files (d2/b)" |
|
222 | $ mv d1 d2 d3 | |
111 |
hg rename d1 |
|
223 | $ hg rename --after d1 d2 d3 | |
112 | hg status -C |
|
224 | moving d1/a to d3/d1/a | |
113 | diff d1/b d2/b |
|
225 | moving d1/b to d3/d1/b | |
114 | hg update -C |
|
226 | moving d1/ba to d3/d1/ba | |
115 | rm d2/a d2/ba d2/d11/a1 |
|
227 | moving d1/d11/a1 to d3/d1/d11/a1 | |
|
228 | moving d2/b to d3/d2/b | |||
|
229 | $ hg status -C | |||
|
230 | A d3/d1/a | |||
|
231 | d1/a | |||
|
232 | A d3/d1/b | |||
|
233 | d1/b | |||
|
234 | A d3/d1/ba | |||
|
235 | d1/ba | |||
|
236 | A d3/d1/d11/a1 | |||
|
237 | d1/d11/a1 | |||
|
238 | A d3/d2/b | |||
|
239 | d2/b | |||
|
240 | R d1/a | |||
|
241 | R d1/b | |||
|
242 | R d1/ba | |||
|
243 | R d1/d11/a1 | |||
|
244 | R d2/b | |||
|
245 | $ hg update -C | |||
|
246 | 5 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
247 | $ rm -rf d3 | |||
|
248 | ||||
|
249 | move everything under directory d1 to existing directory d2, do not | |||
|
250 | overwrite existing files (d2/b) | |||
116 |
|
251 | |||
117 | echo "# attempt to move one file into a non-existent directory" |
|
252 | $ hg rename d1/* d2 | |
118 | hg rename d1/a dx/ |
|
253 | d2/b: not overwriting - file exists | |
119 | hg status -C |
|
254 | moving d1/d11/a1 to d2/d11/a1 | |
120 | hg update -C |
|
255 | $ hg status -C | |
|
256 | A d2/a | |||
|
257 | d1/a | |||
|
258 | A d2/ba | |||
|
259 | d1/ba | |||
|
260 | A d2/d11/a1 | |||
|
261 | d1/d11/a1 | |||
|
262 | R d1/a | |||
|
263 | R d1/ba | |||
|
264 | R d1/d11/a1 | |||
|
265 | $ diff -u d1/b d2/b | |||
|
266 | --- d1/b .* | |||
|
267 | \+\+\+ d2/b .* | |||
|
268 | @@ -1 +1 @@ | |||
|
269 | -d1/b | |||
|
270 | +d2/b | |||
|
271 | $ hg update -C | |||
|
272 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
273 | $ rm d2/a d2/ba d2/d11/a1 | |||
121 |
|
274 | |||
122 |
|
|
275 | attempt to move one file into a non-existent directory | |
123 | echo "# directory" |
|
276 | ||
124 |
hg rename |
|
277 | $ hg rename d1/a dx/ | |
|
278 | abort: destination dx/ is not a directory | |||
|
279 | $ hg status -C | |||
|
280 | $ hg update -C | |||
|
281 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
282 | ||||
|
283 | attempt to move potentially more than one file into a non-existent directory | |||
|
284 | ||||
|
285 | $ hg rename 'glob:d1/**' dx | |||
|
286 | abort: with multiple sources, destination must be an existing directory | |||
|
287 | ||||
|
288 | move every file under d1 to d2/d21 (glob) | |||
125 |
|
289 | |||
126 | echo "# move every file under d1 to d2/d21 (glob)" |
|
290 | $ mkdir d2/d21 | |
127 | mkdir d2/d21 |
|
291 | $ hg rename 'glob:d1/**' d2/d21 | |
128 | hg rename 'glob:d1/**' d2/d21 |
|
292 | moving d1/a to d2/d21/a | |
129 | hg status -C |
|
293 | moving d1/b to d2/d21/b | |
130 | hg update -C |
|
294 | moving d1/ba to d2/d21/ba | |
131 | rm -rf d2/d21 |
|
295 | moving d1/d11/a1 to d2/d21/a1 | |
|
296 | $ hg status -C | |||
|
297 | A d2/d21/a | |||
|
298 | d1/a | |||
|
299 | A d2/d21/a1 | |||
|
300 | d1/d11/a1 | |||
|
301 | A d2/d21/b | |||
|
302 | d1/b | |||
|
303 | A d2/d21/ba | |||
|
304 | d1/ba | |||
|
305 | R d1/a | |||
|
306 | R d1/b | |||
|
307 | R d1/ba | |||
|
308 | R d1/d11/a1 | |||
|
309 | $ hg update -C | |||
|
310 | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
311 | $ rm -rf d2/d21 | |||
|
312 | ||||
|
313 | move --after some files under d1 to d2/d21 (glob) | |||
132 |
|
314 | |||
133 | echo "# move --after some files under d1 to d2/d21 (glob)" |
|
315 | $ mkdir d2/d21 | |
134 | mkdir d2/d21 |
|
316 | $ mv d1/a d1/d11/a1 d2/d21 | |
135 | mv d1/a d1/d11/a1 d2/d21 |
|
317 | $ hg rename --after 'glob:d1/**' d2/d21 | |
136 | hg rename --after 'glob:d1/**' d2/d21 |
|
318 | moving d1/a to d2/d21/a | |
137 | hg status -C |
|
319 | d1/b: not recording move - d2/d21/b does not exist | |
138 | hg update -C |
|
320 | d1/ba: not recording move - d2/d21/ba does not exist | |
139 | rm -rf d2/d21 |
|
321 | moving d1/d11/a1 to d2/d21/a1 | |
|
322 | $ hg status -C | |||
|
323 | A d2/d21/a | |||
|
324 | d1/a | |||
|
325 | A d2/d21/a1 | |||
|
326 | d1/d11/a1 | |||
|
327 | R d1/a | |||
|
328 | R d1/d11/a1 | |||
|
329 | $ hg update -C | |||
|
330 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
331 | $ rm -rf d2/d21 | |||
|
332 | ||||
|
333 | move every file under d1 starting with an 'a' to d2/d21 (regexp) | |||
140 |
|
334 | |||
141 | echo "# move every file under d1 starting with an 'a' to d2/d21 (regexp)" |
|
335 | $ mkdir d2/d21 | |
142 | mkdir d2/d21 |
|
336 | $ hg rename 're:d1/([^a][^/]*/)*a.*' d2/d21 | |
143 | hg rename 're:d1/([^a][^/]*/)*a.*' d2/d21 |
|
337 | moving d1/a to d2/d21/a | |
144 | hg status -C |
|
338 | moving d1/d11/a1 to d2/d21/a1 | |
145 | hg update -C |
|
339 | $ hg status -C | |
146 |
|
|
340 | A d2/d21/a | |
|
341 | d1/a | |||
|
342 | A d2/d21/a1 | |||
|
343 | d1/d11/a1 | |||
|
344 | R d1/a | |||
|
345 | R d1/d11/a1 | |||
|
346 | $ hg update -C | |||
|
347 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
348 | $ rm -rf d2/d21 | |||
147 |
|
349 | |||
148 |
|
|
350 | attempt to overwrite an existing file | |
149 | echo "ca" > d1/ca |
|
351 | ||
150 | hg rename d1/ba d1/ca |
|
352 | $ echo "ca" > d1/ca | |
151 | hg status -C |
|
353 | $ hg rename d1/ba d1/ca | |
152 | hg update -C |
|
354 | d1/ca: not overwriting - file exists | |
|
355 | $ hg status -C | |||
|
356 | ? d1/ca | |||
|
357 | $ hg update -C | |||
|
358 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
359 | ||||
|
360 | forced overwrite of an existing file | |||
153 |
|
361 | |||
154 | echo "# forced overwrite of an existing file" |
|
362 | $ echo "ca" > d1/ca | |
155 | echo "ca" > d1/ca |
|
363 | $ hg rename --force d1/ba d1/ca | |
156 | hg rename --force d1/ba d1/ca |
|
364 | $ hg status -C | |
157 | hg status -C |
|
365 | A d1/ca | |
158 | hg update -C |
|
366 | d1/ba | |
159 | rm d1/ca |
|
367 | R d1/ba | |
|
368 | $ hg update -C | |||
|
369 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
370 | $ rm d1/ca | |||
|
371 | ||||
|
372 | replace a symlink with a file | |||
160 |
|
373 | |||
161 | echo "# replace a symlink with a file" |
|
374 | $ ln -s ba d1/ca | |
162 | ln -s ba d1/ca |
|
375 | $ hg rename --force d1/ba d1/ca | |
163 | hg rename --force d1/ba d1/ca |
|
376 | $ hg status -C | |
164 | hg status -C |
|
377 | A d1/ca | |
165 | hg update -C |
|
378 | d1/ba | |
166 | rm d1/ca |
|
379 | R d1/ba | |
|
380 | $ hg update -C | |||
|
381 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
382 | $ rm d1/ca | |||
|
383 | ||||
|
384 | do not copy more than one source file to the same destination file | |||
167 |
|
385 | |||
168 | echo "# do not copy more than one source file to the same destination file" |
|
386 | $ mkdir d3 | |
169 | mkdir d3 |
|
387 | $ hg rename d1/* d2/* d3 | |
170 | hg rename d1/* d2/* d3 |
|
388 | moving d1/d11/a1 to d3/d11/a1 | |
171 | hg status -C |
|
389 | d3/b: not overwriting - d2/b collides with d1/b | |
172 | hg update -C |
|
390 | $ hg status -C | |
173 | rm -rf d3 |
|
391 | A d3/a | |
|
392 | d1/a | |||
|
393 | A d3/b | |||
|
394 | d1/b | |||
|
395 | A d3/ba | |||
|
396 | d1/ba | |||
|
397 | A d3/d11/a1 | |||
|
398 | d1/d11/a1 | |||
|
399 | R d1/a | |||
|
400 | R d1/b | |||
|
401 | R d1/ba | |||
|
402 | R d1/d11/a1 | |||
|
403 | $ hg update -C | |||
|
404 | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
405 | $ rm -rf d3 | |||
|
406 | ||||
|
407 | move a whole subtree with \"hg rename .\" | |||
174 |
|
408 | |||
175 | echo "# move a whole subtree with \"hg rename .\"" |
|
409 | $ mkdir d3 | |
176 | mkdir d3 |
|
410 | $ (cd d1; hg rename . ../d3) | |
177 | (cd d1; hg rename . ../d3) |
|
411 | moving a to ../d3/d1/a | |
178 | hg status -C |
|
412 | moving b to ../d3/d1/b | |
179 | hg update -C |
|
413 | moving ba to ../d3/d1/ba | |
180 | rm -rf d3 |
|
414 | moving d11/a1 to ../d3/d1/d11/a1 | |
|
415 | $ hg status -C | |||
|
416 | A d3/d1/a | |||
|
417 | d1/a | |||
|
418 | A d3/d1/b | |||
|
419 | d1/b | |||
|
420 | A d3/d1/ba | |||
|
421 | d1/ba | |||
|
422 | A d3/d1/d11/a1 | |||
|
423 | d1/d11/a1 | |||
|
424 | R d1/a | |||
|
425 | R d1/b | |||
|
426 | R d1/ba | |||
|
427 | R d1/d11/a1 | |||
|
428 | $ hg update -C | |||
|
429 | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
430 | $ rm -rf d3 | |||
181 |
|
431 | |||
182 |
|
|
432 | move a whole subtree with \"hg rename --after .\" | |
183 | mkdir d3 |
|
|||
184 | mv d1/* d3 |
|
|||
185 | (cd d1; hg rename --after . ../d3) |
|
|||
186 | hg status -C |
|
|||
187 | hg update -C |
|
|||
188 | rm -rf d3 |
|
|||
189 |
|
433 | |||
190 | echo "# move the parent tree with \"hg rename ..\"" |
|
434 | $ mkdir d3 | |
191 | (cd d1/d11; hg rename .. ../../d3) |
|
435 | $ mv d1/* d3 | |
192 | hg status -C |
|
436 | $ (cd d1; hg rename --after . ../d3) | |
193 | hg update -C |
|
437 | moving a to ../d3/a | |
194 | rm -rf d3 |
|
438 | moving b to ../d3/b | |
|
439 | moving ba to ../d3/ba | |||
|
440 | moving d11/a1 to ../d3/d11/a1 | |||
|
441 | $ hg status -C | |||
|
442 | A d3/a | |||
|
443 | d1/a | |||
|
444 | A d3/b | |||
|
445 | d1/b | |||
|
446 | A d3/ba | |||
|
447 | d1/ba | |||
|
448 | A d3/d11/a1 | |||
|
449 | d1/d11/a1 | |||
|
450 | R d1/a | |||
|
451 | R d1/b | |||
|
452 | R d1/ba | |||
|
453 | R d1/d11/a1 | |||
|
454 | $ hg update -C | |||
|
455 | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
456 | $ rm -rf d3 | |||
195 |
|
457 | |||
196 | echo "# skip removed files" |
|
458 | move the parent tree with \"hg rename ..\" | |
197 | hg remove d1/b |
|
|||
198 | hg rename d1 d3 |
|
|||
199 | hg status -C |
|
|||
200 | hg update -C |
|
|||
201 | rm -rf d3 |
|
|||
202 |
|
459 | |||
203 | echo "# transitive rename" |
|
460 | $ (cd d1/d11; hg rename .. ../../d3) | |
204 | hg rename d1/b d1/bb |
|
461 | moving ../a to ../../d3/a | |
205 | hg rename d1/bb d1/bc |
|
462 | moving ../b to ../../d3/b | |
206 | hg status -C |
|
463 | moving ../ba to ../../d3/ba | |
207 | hg update -C |
|
464 | moving a1 to ../../d3/d11/a1 | |
208 | rm d1/bc |
|
465 | $ hg status -C | |
|
466 | A d3/a | |||
|
467 | d1/a | |||
|
468 | A d3/b | |||
|
469 | d1/b | |||
|
470 | A d3/ba | |||
|
471 | d1/ba | |||
|
472 | A d3/d11/a1 | |||
|
473 | d1/d11/a1 | |||
|
474 | R d1/a | |||
|
475 | R d1/b | |||
|
476 | R d1/ba | |||
|
477 | R d1/d11/a1 | |||
|
478 | $ hg update -C | |||
|
479 | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
480 | $ rm -rf d3 | |||
|
481 | ||||
|
482 | skip removed files | |||
209 |
|
483 | |||
210 | echo "# transitive rename --after" |
|
484 | $ hg remove d1/b | |
211 |
hg rename d1 |
|
485 | $ hg rename d1 d3 | |
212 | mv d1/bb d1/bc |
|
486 | moving d1/a to d3/a | |
213 | hg rename --after d1/bb d1/bc |
|
487 | moving d1/ba to d3/ba | |
214 | hg status -C |
|
488 | moving d1/d11/a1 to d3/d11/a1 | |
215 | hg update -C |
|
489 | $ hg status -C | |
216 | rm d1/bc |
|
490 | A d3/a | |
|
491 | d1/a | |||
|
492 | A d3/ba | |||
|
493 | d1/ba | |||
|
494 | A d3/d11/a1 | |||
|
495 | d1/d11/a1 | |||
|
496 | R d1/a | |||
|
497 | R d1/b | |||
|
498 | R d1/ba | |||
|
499 | R d1/d11/a1 | |||
|
500 | $ hg update -C | |||
|
501 | 4 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
502 | $ rm -rf d3 | |||
217 |
|
503 | |||
218 | echo "# idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)" |
|
504 | transitive rename | |
219 | hg rename d1/b d1/bb |
|
505 | ||
220 | echo "some stuff added to d1/bb" >> d1/bb |
|
506 | $ hg rename d1/b d1/bb | |
221 | hg rename d1/bb d1/b |
|
507 | $ hg rename d1/bb d1/bc | |
222 | hg status -C |
|
508 | $ hg status -C | |
223 | hg update -C |
|
509 | A d1/bc | |
|
510 | d1/b | |||
|
511 | R d1/b | |||
|
512 | $ hg update -C | |||
|
513 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
514 | $ rm d1/bc | |||
224 |
|
515 | |||
225 | echo '# overwriting with renames (issue1959)' |
|
516 | transitive rename --after | |
226 | hg rename d1/a d1/c |
|
|||
227 | hg rename d1/b d1/a |
|
|||
228 | hg status -C |
|
|||
229 | hg diff --git |
|
|||
230 | hg update -C |
|
|||
231 |
|
517 | |||
232 | echo "# check illegal path components" |
|
518 | $ hg rename d1/b d1/bb | |
|
519 | $ mv d1/bb d1/bc | |||
|
520 | $ hg rename --after d1/bb d1/bc | |||
|
521 | $ hg status -C | |||
|
522 | A d1/bc | |||
|
523 | d1/b | |||
|
524 | R d1/b | |||
|
525 | $ hg update -C | |||
|
526 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
527 | $ rm d1/bc | |||
233 |
|
528 | |||
234 | hg rename d1/d11/a1 .hg/foo |
|
529 | $ echo "# idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)" | |
235 | hg status -C |
|
530 | # idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b) | |
236 |
hg rename d1/ |
|
531 | $ hg rename d1/b d1/bb | |
237 | hg status -C |
|
532 | $ echo "some stuff added to d1/bb" >> d1/bb | |
|
533 | $ hg rename d1/bb d1/b | |||
|
534 | $ hg status -C | |||
|
535 | M d1/b | |||
|
536 | $ hg update -C | |||
|
537 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
538 | ||||
|
539 | overwriting with renames (issue1959) | |||
238 |
|
540 | |||
239 | mv d1/d11/a1 .hg/foo |
|
541 | $ hg rename d1/a d1/c | |
240 | hg rename --after d1/d11/a1 .hg/foo |
|
542 | $ hg rename d1/b d1/a | |
241 | hg status -C |
|
543 | $ hg status -C | |
242 | hg update -C |
|
544 | A d1/a | |
243 | rm .hg/foo |
|
545 | d1/b | |
|
546 | A d1/c | |||
|
547 | d1/a | |||
|
548 | R d1/b | |||
|
549 | $ hg diff --git | |||
|
550 | diff --git a/d1/b b/d1/a | |||
|
551 | rename from d1/b | |||
|
552 | rename to d1/a | |||
|
553 | diff --git a/d1/a b/d1/c | |||
|
554 | copy from d1/a | |||
|
555 | copy to d1/c | |||
|
556 | $ hg update -C | |||
|
557 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved | |||
244 |
|
558 | |||
245 | hg rename d1/d11/a1 .hg |
|
559 | check illegal path components | |
246 | hg status -C |
|
560 | ||
247 |
hg rename d1/d11/a1 . |
|
561 | $ hg rename d1/d11/a1 .hg/foo | |
248 | hg status -C |
|
562 | abort: path contains illegal component: .hg/foo | |
|
563 | $ hg status -C | |||
|
564 | $ hg rename d1/d11/a1 ../foo | |||
|
565 | abort: ../foo not under root | |||
|
566 | $ hg status -C | |||
249 |
|
567 | |||
250 | mv d1/d11/a1 .hg |
|
568 | $ mv d1/d11/a1 .hg/foo | |
251 | hg rename --after d1/d11/a1 .hg |
|
569 | $ hg rename --after d1/d11/a1 .hg/foo | |
252 | hg status -C |
|
570 | abort: path contains illegal component: .hg/foo | |
253 | hg update -C |
|
571 | $ hg status -C | |
254 | rm .hg/a1 |
|
572 | ! d1/d11/a1 | |
|
573 | $ hg update -C | |||
|
574 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
575 | $ rm .hg/foo | |||
|
576 | ||||
|
577 | $ hg rename d1/d11/a1 .hg | |||
|
578 | abort: path contains illegal component: .hg/a1 | |||
|
579 | $ hg status -C | |||
|
580 | $ hg rename d1/d11/a1 .. | |||
|
581 | abort: ../a1 not under root | |||
|
582 | $ hg status -C | |||
255 |
|
583 | |||
256 | (cd d1/d11; hg rename ../../d2/b ../../.hg/foo) |
|
584 | $ mv d1/d11/a1 .hg | |
257 | hg status -C |
|
585 | $ hg rename --after d1/d11/a1 .hg | |
258 | (cd d1/d11; hg rename ../../d2/b ../../../foo) |
|
586 | abort: path contains illegal component: .hg/a1 | |
259 | hg status -C |
|
587 | $ hg status -C | |
|
588 | ! d1/d11/a1 | |||
|
589 | $ hg update -C | |||
|
590 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
591 | $ rm .hg/a1 | |||
260 |
|
592 | |||
|
593 | $ (cd d1/d11; hg rename ../../d2/b ../../.hg/foo) | |||
|
594 | abort: path contains illegal component: .hg/foo | |||
|
595 | $ hg status -C | |||
|
596 | $ (cd d1/d11; hg rename ../../d2/b ../../../foo) | |||
|
597 | abort: ../../../foo not under root | |||
|
598 | $ hg status -C | |||
|
599 |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now