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