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