##// END OF EJS Templates
Merge with crew-stable
Patrick Mezard -
r7477:1e8d7339 merge default
parent child Browse files
Show More
@@ -0,0 +1,415 b''
1 SVN-fs-dump-format-version: 2
2
3 UUID: 7b60030a-5a1f-4344-a009-73f0c1c2adf2
4
5 Revision-number: 0
6 Prop-content-length: 56
7 Content-length: 56
8
9 K 8
10 svn:date
11 V 27
12 2008-12-06T12:47:52.296168Z
13 PROPS-END
14
15 Revision-number: 1
16 Prop-content-length: 112
17 Content-length: 112
18
19 K 7
20 svn:log
21 V 10
22 init projA
23 K 10
24 svn:author
25 V 7
26 pmezard
27 K 8
28 svn:date
29 V 27
30 2008-12-06T12:47:52.342238Z
31 PROPS-END
32
33 Node-path: branches
34 Node-kind: dir
35 Node-action: add
36 Prop-content-length: 10
37 Content-length: 10
38
39 PROPS-END
40
41
42 Node-path: tags
43 Node-kind: dir
44 Node-action: add
45 Prop-content-length: 10
46 Content-length: 10
47
48 PROPS-END
49
50
51 Node-path: trunk
52 Node-kind: dir
53 Node-action: add
54 Prop-content-length: 10
55 Content-length: 10
56
57 PROPS-END
58
59
60 Revision-number: 2
61 Prop-content-length: 106
62 Content-length: 106
63
64 K 7
65 svn:log
66 V 5
67 hello
68 K 10
69 svn:author
70 V 7
71 pmezard
72 K 8
73 svn:date
74 V 27
75 2008-12-06T12:47:53.190046Z
76 PROPS-END
77
78 Node-path: branches/notinbranch
79 Node-kind: file
80 Node-action: add
81 Prop-content-length: 10
82 Text-content-length: 2
83 Text-content-md5: e29311f6f1bf1af907f9ef9f44b8328b
84 Content-length: 12
85
86 PROPS-END
87 d
88
89
90 Node-path: trunk/a
91 Node-kind: file
92 Node-action: add
93 Prop-content-length: 10
94 Text-content-length: 2
95 Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3
96 Content-length: 12
97
98 PROPS-END
99 a
100
101
102 Node-path: trunk/b
103 Node-kind: file
104 Node-action: add
105 Prop-content-length: 10
106 Text-content-length: 2
107 Text-content-md5: 3b5d5c3712955042212316173ccf37be
108 Content-length: 12
109
110 PROPS-END
111 b
112
113
114 Node-path: trunk/c
115 Node-kind: file
116 Node-action: add
117 Prop-content-length: 10
118 Text-content-length: 2
119 Text-content-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1
120 Content-length: 12
121
122 PROPS-END
123 c
124
125
126 Revision-number: 3
127 Prop-content-length: 124
128 Content-length: 124
129
130 K 7
131 svn:log
132 V 22
133 branch trunk, remove c
134 K 10
135 svn:author
136 V 7
137 pmezard
138 K 8
139 svn:date
140 V 27
141 2008-12-06T12:47:55.188535Z
142 PROPS-END
143
144 Node-path: branches/old
145 Node-kind: dir
146 Node-action: add
147 Node-copyfrom-rev: 1
148 Node-copyfrom-path: trunk
149 Prop-content-length: 34
150 Content-length: 34
151
152 K 13
153 svn:mergeinfo
154 V 0
155
156 PROPS-END
157
158
159 Node-path: branches/old/a
160 Node-kind: file
161 Node-action: add
162 Node-copyfrom-rev: 2
163 Node-copyfrom-path: trunk/a
164 Text-copy-source-md5: 60b725f10c9c85c70d97880dfe8191b3
165
166
167 Node-path: branches/old/b
168 Node-kind: file
169 Node-action: add
170 Node-copyfrom-rev: 2
171 Node-copyfrom-path: trunk/b
172 Text-copy-source-md5: 3b5d5c3712955042212316173ccf37be
173
174
175 Revision-number: 4
176 Prop-content-length: 109
177 Content-length: 109
178
179 K 7
180 svn:log
181 V 8
182 change a
183 K 10
184 svn:author
185 V 7
186 pmezard
187 K 8
188 svn:date
189 V 27
190 2008-12-06T12:47:57.146347Z
191 PROPS-END
192
193 Node-path: trunk/a
194 Node-kind: file
195 Node-action: change
196 Text-content-length: 4
197 Text-content-md5: 0d227f1abf8c2932d342e9b99cc957eb
198 Content-length: 4
199
200 a
201 a
202
203
204 Revision-number: 5
205 Prop-content-length: 109
206 Content-length: 109
207
208 K 7
209 svn:log
210 V 8
211 change b
212 K 10
213 svn:author
214 V 7
215 pmezard
216 K 8
217 svn:date
218 V 27
219 2008-12-06T12:47:58.150124Z
220 PROPS-END
221
222 Node-path: branches/old/b
223 Node-kind: file
224 Node-action: change
225 Text-content-length: 4
226 Text-content-md5: 06ac26ed8b614fc0b141e4542aa067c2
227 Content-length: 4
228
229 b
230 b
231
232
233 Revision-number: 6
234 Prop-content-length: 119
235 Content-length: 119
236
237 K 7
238 svn:log
239 V 17
240 move and update c
241 K 10
242 svn:author
243 V 7
244 pmezard
245 K 8
246 svn:date
247 V 27
248 2008-12-06T12:48:00.161336Z
249 PROPS-END
250
251 Node-path: branches/old/c
252 Node-kind: file
253 Node-action: add
254 Node-copyfrom-rev: 3
255 Node-copyfrom-path: trunk/b
256 Text-copy-source-md5: 3b5d5c3712955042212316173ccf37be
257 Prop-content-length: 34
258 Text-content-length: 4
259 Text-content-md5: 33cb6785d50937d8d307ebb66d6259a7
260 Content-length: 38
261
262 K 13
263 svn:mergeinfo
264 V 0
265
266 PROPS-END
267 b
268 c
269
270
271 Node-path: trunk/b
272 Node-action: delete
273
274
275 Revision-number: 7
276 Prop-content-length: 116
277 Content-length: 116
278
279 K 7
280 svn:log
281 V 14
282 change b again
283 K 10
284 svn:author
285 V 7
286 pmezard
287 K 8
288 svn:date
289 V 27
290 2008-12-06T12:48:01.153724Z
291 PROPS-END
292
293 Node-path: branches/old/b
294 Node-kind: file
295 Node-action: change
296 Text-content-length: 6
297 Text-content-md5: cdcfb41554e2d092c13f5e6839e63577
298 Content-length: 6
299
300 b
301 b
302 b
303
304
305 Revision-number: 8
306 Prop-content-length: 114
307 Content-length: 114
308
309 K 7
310 svn:log
311 V 12
312 move to old2
313 K 10
314 svn:author
315 V 7
316 pmezard
317 K 8
318 svn:date
319 V 27
320 2008-12-06T12:48:04.150915Z
321 PROPS-END
322
323 Node-path: branches/old2
324 Node-kind: dir
325 Node-action: add
326 Node-copyfrom-rev: 7
327 Node-copyfrom-path: branches/old
328
329
330 Node-path: branches/old
331 Node-action: delete
332
333
334 Revision-number: 9
335 Prop-content-length: 118
336 Content-length: 118
337
338 K 7
339 svn:log
340 V 16
341 move back to old
342 K 10
343 svn:author
344 V 7
345 pmezard
346 K 8
347 svn:date
348 V 27
349 2008-12-06T12:48:06.149560Z
350 PROPS-END
351
352 Node-path: branches/old
353 Node-kind: dir
354 Node-action: add
355 Node-copyfrom-rev: 8
356 Node-copyfrom-path: branches/old2
357
358
359 Node-path: branches/old2
360 Node-action: delete
361
362
363 Revision-number: 10
364 Prop-content-length: 118
365 Content-length: 118
366
367 K 7
368 svn:log
369 V 16
370 last change to a
371 K 10
372 svn:author
373 V 7
374 pmezard
375 K 8
376 svn:date
377 V 27
378 2008-12-06T12:48:07.268498Z
379 PROPS-END
380
381 Node-path: trunk/a
382 Node-kind: file
383 Node-action: change
384 Text-content-length: 2
385 Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3
386 Content-length: 2
387
388 a
389
390
391 Revision-number: 11
392 Prop-content-length: 126
393 Content-length: 126
394
395 K 7
396 svn:log
397 V 24
398 branch trunk@1 into old3
399 K 10
400 svn:author
401 V 7
402 pmezard
403 K 8
404 svn:date
405 V 27
406 2008-12-06T12:48:09.151702Z
407 PROPS-END
408
409 Node-path: branches/old3
410 Node-kind: dir
411 Node-action: add
412 Node-copyfrom-rev: 1
413 Node-copyfrom-path: trunk
414
415
@@ -0,0 +1,401 b''
1 SVN-fs-dump-format-version: 2
2
3 UUID: 0682b859-320d-4a69-a164-a7cab5695072
4
5 Revision-number: 0
6 Prop-content-length: 56
7 Content-length: 56
8
9 K 8
10 svn:date
11 V 27
12 2008-12-06T13:33:36.768573Z
13 PROPS-END
14
15 Revision-number: 1
16 Prop-content-length: 112
17 Content-length: 112
18
19 K 7
20 svn:log
21 V 10
22 init projA
23 K 10
24 svn:author
25 V 7
26 pmezard
27 K 8
28 svn:date
29 V 27
30 2008-12-06T13:33:37.083146Z
31 PROPS-END
32
33 Node-path: trunk
34 Node-kind: dir
35 Node-action: add
36 Prop-content-length: 10
37 Content-length: 10
38
39 PROPS-END
40
41
42 Node-path: trunk/a
43 Node-kind: file
44 Node-action: add
45 Prop-content-length: 10
46 Text-content-length: 2
47 Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3
48 Content-length: 12
49
50 PROPS-END
51 a
52
53
54 Node-path: trunk/d1
55 Node-kind: dir
56 Node-action: add
57 Prop-content-length: 10
58 Content-length: 10
59
60 PROPS-END
61
62
63 Node-path: trunk/d1/b
64 Node-kind: file
65 Node-action: add
66 Prop-content-length: 10
67 Text-content-length: 2
68 Text-content-md5: 3b5d5c3712955042212316173ccf37be
69 Content-length: 12
70
71 PROPS-END
72 b
73
74
75 Node-path: trunk/d1/c
76 Node-kind: file
77 Node-action: add
78 Prop-content-length: 10
79 Text-content-length: 2
80 Text-content-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1
81 Content-length: 12
82
83 PROPS-END
84 c
85
86
87 Node-path: trunk/d2
88 Node-kind: dir
89 Node-action: add
90 Prop-content-length: 10
91 Content-length: 10
92
93 PROPS-END
94
95
96 Node-path: trunk/d2/d
97 Node-kind: file
98 Node-action: add
99 Prop-content-length: 10
100 Text-content-length: 2
101 Text-content-md5: e29311f6f1bf1af907f9ef9f44b8328b
102 Content-length: 12
103
104 PROPS-END
105 d
106
107
108 Revision-number: 2
109 Prop-content-length: 118
110 Content-length: 118
111
112 K 7
113 svn:log
114 V 16
115 commitbeforemove
116 K 10
117 svn:author
118 V 7
119 pmezard
120 K 8
121 svn:date
122 V 27
123 2008-12-06T13:33:38.152773Z
124 PROPS-END
125
126 Node-path: trunk/a
127 Node-kind: file
128 Node-action: change
129 Text-content-length: 4
130 Text-content-md5: 0d227f1abf8c2932d342e9b99cc957eb
131 Content-length: 4
132
133 a
134 a
135
136
137 Node-path: trunk/d1/c
138 Node-kind: file
139 Node-action: change
140 Text-content-length: 4
141 Text-content-md5: 63fad9092ad37713ebe26b3193f89c41
142 Content-length: 4
143
144 c
145 c
146
147
148 Revision-number: 3
149 Prop-content-length: 112
150 Content-length: 112
151
152 K 7
153 svn:log
154 V 10
155 movedtrunk
156 K 10
157 svn:author
158 V 7
159 pmezard
160 K 8
161 svn:date
162 V 27
163 2008-12-06T13:33:39.146388Z
164 PROPS-END
165
166 Node-path: subproject
167 Node-kind: dir
168 Node-action: add
169 Node-copyfrom-rev: 2
170 Node-copyfrom-path: trunk
171
172
173 Node-path: trunk
174 Node-action: delete
175
176
177 Revision-number: 4
178 Prop-content-length: 113
179 Content-length: 113
180
181 K 7
182 svn:log
183 V 11
184 createtrunk
185 K 10
186 svn:author
187 V 7
188 pmezard
189 K 8
190 svn:date
191 V 27
192 2008-12-06T13:33:40.179944Z
193 PROPS-END
194
195 Node-path: subproject/trunk
196 Node-kind: dir
197 Node-action: add
198 Prop-content-length: 10
199 Content-length: 10
200
201 PROPS-END
202
203
204 Revision-number: 5
205 Prop-content-length: 116
206 Content-length: 116
207
208 K 7
209 svn:log
210 V 14
211 createbranches
212 K 10
213 svn:author
214 V 7
215 pmezard
216 K 8
217 svn:date
218 V 27
219 2008-12-06T13:33:41.184505Z
220 PROPS-END
221
222 Node-path: subproject/branches
223 Node-kind: dir
224 Node-action: add
225 Prop-content-length: 10
226 Content-length: 10
227
228 PROPS-END
229
230
231 Revision-number: 6
232 Prop-content-length: 107
233 Content-length: 107
234
235 K 7
236 svn:log
237 V 6
238 moved1
239 K 10
240 svn:author
241 V 7
242 pmezard
243 K 8
244 svn:date
245 V 27
246 2008-12-06T13:33:42.153312Z
247 PROPS-END
248
249 Node-path: subproject/trunk/d1
250 Node-kind: dir
251 Node-action: add
252 Node-copyfrom-rev: 5
253 Node-copyfrom-path: subproject/d1
254
255
256 Node-path: subproject/d1
257 Node-action: delete
258
259
260 Revision-number: 7
261 Prop-content-length: 107
262 Content-length: 107
263
264 K 7
265 svn:log
266 V 6
267 moved2
268 K 10
269 svn:author
270 V 7
271 pmezard
272 K 8
273 svn:date
274 V 27
275 2008-12-06T13:33:42.206313Z
276 PROPS-END
277
278 Node-path: subproject/trunk/d2
279 Node-kind: dir
280 Node-action: add
281 Node-copyfrom-rev: 6
282 Node-copyfrom-path: subproject/d2
283
284
285 Node-path: subproject/d2
286 Node-action: delete
287
288
289 Revision-number: 8
290 Prop-content-length: 119
291 Content-length: 119
292
293 K 7
294 svn:log
295 V 17
296 changeb and rm d2
297 K 10
298 svn:author
299 V 7
300 pmezard
301 K 8
302 svn:date
303 V 27
304 2008-12-06T13:33:43.182355Z
305 PROPS-END
306
307 Node-path: subproject/trunk/d1/b
308 Node-kind: file
309 Node-action: change
310 Text-content-length: 4
311 Text-content-md5: 06ac26ed8b614fc0b141e4542aa067c2
312 Content-length: 4
313
314 b
315 b
316
317
318 Node-path: subproject/trunk/d2
319 Node-action: delete
320
321
322 Revision-number: 9
323 Prop-content-length: 113
324 Content-length: 113
325
326 K 7
327 svn:log
328 V 11
329 moved1again
330 K 10
331 svn:author
332 V 7
333 pmezard
334 K 8
335 svn:date
336 V 27
337 2008-12-06T13:33:44.153682Z
338 PROPS-END
339
340 Node-path: subproject/branches/d1
341 Node-kind: dir
342 Node-action: add
343 Node-copyfrom-rev: 8
344 Node-copyfrom-path: subproject/trunk/d1
345
346
347 Node-path: subproject/trunk/d1
348 Node-action: delete
349
350
351 Revision-number: 10
352 Prop-content-length: 118
353 Content-length: 118
354
355 K 7
356 svn:log
357 V 16
358 copyfilefrompast
359 K 10
360 svn:author
361 V 7
362 pmezard
363 K 8
364 svn:date
365 V 27
366 2008-12-06T13:33:44.298011Z
367 PROPS-END
368
369 Node-path: subproject/trunk/d
370 Node-kind: file
371 Node-action: add
372 Node-copyfrom-rev: 7
373 Node-copyfrom-path: subproject/trunk/d2/d
374 Text-copy-source-md5: e29311f6f1bf1af907f9ef9f44b8328b
375
376
377 Revision-number: 11
378 Prop-content-length: 117
379 Content-length: 117
380
381 K 7
382 svn:log
383 V 15
384 copydirfrompast
385 K 10
386 svn:author
387 V 7
388 pmezard
389 K 8
390 svn:date
391 V 27
392 2008-12-06T13:33:44.349920Z
393 PROPS-END
394
395 Node-path: subproject/trunk/d2
396 Node-kind: dir
397 Node-action: add
398 Node-copyfrom-rev: 7
399 Node-copyfrom-path: subproject/trunk/d2
400
401
@@ -0,0 +1,240 b''
1 SVN-fs-dump-format-version: 2
2
3 UUID: c731c652-65e9-4325-a17e-fed96a319f22
4
5 Revision-number: 0
6 Prop-content-length: 56
7 Content-length: 56
8
9 K 8
10 svn:date
11 V 27
12 2008-12-06T13:44:21.642421Z
13 PROPS-END
14
15 Revision-number: 1
16 Prop-content-length: 112
17 Content-length: 112
18
19 K 7
20 svn:log
21 V 10
22 init projA
23 K 10
24 svn:author
25 V 7
26 pmezard
27 K 8
28 svn:date
29 V 27
30 2008-12-06T13:44:21.759281Z
31 PROPS-END
32
33 Node-path: branches
34 Node-kind: dir
35 Node-action: add
36 Prop-content-length: 10
37 Content-length: 10
38
39 PROPS-END
40
41
42 Node-path: tags
43 Node-kind: dir
44 Node-action: add
45 Prop-content-length: 10
46 Content-length: 10
47
48 PROPS-END
49
50
51 Node-path: trunk
52 Node-kind: dir
53 Node-action: add
54 Prop-content-length: 10
55 Content-length: 10
56
57 PROPS-END
58
59
60 Revision-number: 2
61 Prop-content-length: 109
62 Content-length: 109
63
64 K 7
65 svn:log
66 V 8
67 createab
68 K 10
69 svn:author
70 V 7
71 pmezard
72 K 8
73 svn:date
74 V 27
75 2008-12-06T13:44:22.179257Z
76 PROPS-END
77
78 Node-path: trunk/a
79 Node-kind: file
80 Node-action: add
81 Prop-content-length: 10
82 Text-content-length: 2
83 Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3
84 Content-length: 12
85
86 PROPS-END
87 a
88
89
90 Node-path: trunk/b
91 Node-kind: file
92 Node-action: add
93 Prop-content-length: 10
94 Text-content-length: 2
95 Text-content-md5: 3b5d5c3712955042212316173ccf37be
96 Content-length: 12
97
98 PROPS-END
99 b
100
101
102 Revision-number: 3
103 Prop-content-length: 108
104 Content-length: 108
105
106 K 7
107 svn:log
108 V 7
109 removeb
110 K 10
111 svn:author
112 V 7
113 pmezard
114 K 8
115 svn:date
116 V 27
117 2008-12-06T13:44:23.176546Z
118 PROPS-END
119
120 Node-path: trunk/b
121 Node-action: delete
122
123
124 Revision-number: 4
125 Prop-content-length: 109
126 Content-length: 109
127
128 K 7
129 svn:log
130 V 8
131 changeaa
132 K 10
133 svn:author
134 V 7
135 pmezard
136 K 8
137 svn:date
138 V 27
139 2008-12-06T13:44:25.147151Z
140 PROPS-END
141
142 Node-path: trunk/a
143 Node-kind: file
144 Node-action: change
145 Text-content-length: 4
146 Text-content-md5: 0d227f1abf8c2932d342e9b99cc957eb
147 Content-length: 4
148
149 a
150 a
151
152
153 Revision-number: 5
154 Prop-content-length: 119
155 Content-length: 119
156
157 K 7
158 svn:log
159 V 17
160 branch, changeaaa
161 K 10
162 svn:author
163 V 7
164 pmezard
165 K 8
166 svn:date
167 V 27
168 2008-12-06T13:44:28.158475Z
169 PROPS-END
170
171 Node-path: branches/branch1
172 Node-kind: dir
173 Node-action: add
174 Node-copyfrom-rev: 4
175 Node-copyfrom-path: trunk
176 Prop-content-length: 34
177 Content-length: 34
178
179 K 13
180 svn:mergeinfo
181 V 0
182
183 PROPS-END
184
185
186 Node-path: branches/branch1/a
187 Node-kind: file
188 Node-action: change
189 Text-content-length: 6
190 Text-content-md5: 7d4ebf8f298d22fc349a91725b00af1c
191 Content-length: 6
192
193 a
194 a
195 a
196
197
198 Revision-number: 6
199 Prop-content-length: 117
200 Content-length: 117
201
202 K 7
203 svn:log
204 V 15
205 addc,changeaaaa
206 K 10
207 svn:author
208 V 7
209 pmezard
210 K 8
211 svn:date
212 V 27
213 2008-12-06T13:44:29.180655Z
214 PROPS-END
215
216 Node-path: branches/branch1/a
217 Node-kind: file
218 Node-action: change
219 Text-content-length: 8
220 Text-content-md5: d12178e74d8774e34361e0a08d1fd2b7
221 Content-length: 8
222
223 a
224 a
225 a
226 a
227
228
229 Node-path: branches/branch1/c
230 Node-kind: file
231 Node-action: add
232 Prop-content-length: 10
233 Text-content-length: 2
234 Text-content-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1
235 Content-length: 12
236
237 PROPS-END
238 c
239
240
@@ -0,0 +1,70 b''
1 #!/bin/sh
2 #
3 # Use this script to generate branches.svndump
4 #
5
6 mkdir temp
7 cd temp
8
9 mkdir project-orig
10 cd project-orig
11 mkdir trunk
12 mkdir branches
13 mkdir tags
14 cd ..
15
16 svnadmin create svn-repo
17 svnurl=file://`pwd`/svn-repo
18 svn import project-orig $svnurl -m "init projA"
19
20 svn co $svnurl project
21 cd project
22 echo a > trunk/a
23 echo b > trunk/b
24 echo c > trunk/c
25 # Add a file within branches, used to confuse branch detection
26 echo d > branches/notinbranch
27 svn add trunk/a trunk/b trunk/c branches/notinbranch
28 svn ci -m hello
29
30 # Branch to old
31 svn copy trunk branches/old
32 svn rm branches/old/c
33 svn ci -m "branch trunk, remove c"
34 svn up
35
36 # Update trunk
37 echo a >> trunk/a
38 svn ci -m "change a"
39
40 # Update old branch
41 echo b >> branches/old/b
42 svn ci -m "change b"
43
44 # Create a cross-branch revision
45 svn move trunk/b branches/old/c
46 echo c >> branches/old/c
47 svn ci -m "move and update c"
48
49 # Update old branch again
50 echo b >> branches/old/b
51 svn ci -m "change b again"
52
53 # Move back and forth between branch of similar names
54 # This used to generate fake copy records
55 svn up
56 svn move branches/old branches/old2
57 svn ci -m "move to old2"
58 svn move branches/old2 branches/old
59 svn ci -m "move back to old"
60
61 # Update trunk again
62 echo a > trunk/a
63 svn ci -m "last change to a"
64
65 # Branch again from a converted revision
66 svn copy -r 1 $svnurl/trunk branches/old3
67 svn ci -m "branch trunk@1 into old3"
68 cd ..
69
70 svnadmin dump svn-repo > ../branches.svndump
@@ -0,0 +1,62 b''
1 #!/bin/sh
2 #
3 # Use this script to generate move.svndump
4 #
5
6 mkdir temp
7 cd temp
8
9 mkdir project-orig
10 cd project-orig
11 mkdir trunk
12 echo a > trunk/a
13 mkdir trunk/d1
14 mkdir trunk/d2
15 echo b > trunk/d1/b
16 echo c > trunk/d1/c
17 echo d > trunk/d2/d
18 cd ..
19
20 svnadmin create svn-repo
21 svnurl=file://`pwd`/svn-repo
22 svn import project-orig $svnurl -m "init projA"
23
24 svn co $svnurl project
25 cd project
26 # Build a module renaming chain which used to confuse the converter.
27 # Update svn repository
28 echo a >> trunk/a
29 echo c >> trunk/d1/c
30 svn ci -m commitbeforemove
31 svn mv $svnurl/trunk $svnurl/subproject -m movedtrunk
32 svn up
33 mkdir subproject/trunk
34 svn add subproject/trunk
35 svn ci -m createtrunk
36 mkdir subproject/branches
37 svn add subproject/branches
38 svn ci -m createbranches
39 svn mv $svnurl/subproject/d1 $svnurl/subproject/trunk/d1 -m moved1
40 svn mv $svnurl/subproject/d2 $svnurl/subproject/trunk/d2 -m moved2
41 svn up
42 echo b >> subproject/trunk/d1/b
43
44 svn rm subproject/trunk/d2
45 svn ci -m "changeb and rm d2"
46 svn mv $svnurl/subproject/trunk/d1 $svnurl/subproject/branches/d1 -m moved1again
47
48 if svn help copy | grep 'SRC\[@REV\]' > /dev/null 2>&1; then
49 # SVN >= 1.5 replaced the -r REV syntax with @REV
50 # Copy a file from a past revision
51 svn copy $svnurl/subproject/trunk/d2/d@7 $svnurl/subproject/trunk -m copyfilefrompast
52 # Copy a directory from a past revision
53 svn copy $svnurl/subproject/trunk/d2@7 $svnurl/subproject/trunk -m copydirfrompast
54 else
55 # Copy a file from a past revision
56 svn copy -r 7 $svnurl/subproject/trunk/d2/d $svnurl/subproject/trunk -m copyfilefrompast
57 # Copy a directory from a past revision
58 svn copy -r 7 $svnurl/subproject/trunk/d2 $svnurl/subproject/trunk -m copydirfrompast
59 fi
60 cd ..
61
62 svnadmin dump svn-repo > ../move.svndump No newline at end of file
@@ -0,0 +1,45 b''
1 #!/bin/sh
2 #
3 # Use this script to generate startrev.svndump
4 #
5
6 mkdir temp
7 cd temp
8
9 mkdir project-orig
10 cd project-orig
11 mkdir trunk
12 mkdir branches
13 mkdir tags
14 cd ..
15
16 svnadmin create svn-repo
17 svnurl=file://`pwd`/svn-repo
18 svn import project-orig $svnurl -m "init projA"
19
20 svn co $svnurl project
21 cd project
22 echo a > trunk/a
23 echo b > trunk/b
24 svn add trunk/a trunk/b
25 svn ci -m createab
26 svn rm trunk/b
27 svn ci -m removeb
28 svn up
29 echo a >> trunk/a
30 svn ci -m changeaa
31
32 # Branch
33 svn up
34 svn copy trunk branches/branch1
35 echo a >> branches/branch1/a
36 svn ci -m "branch, changeaaa"
37
38 echo a >> branches/branch1/a
39 echo c > branches/branch1/c
40 svn add branches/branch1/c
41 svn ci -m "addc,changeaaaa"
42 svn up
43 cd ..
44
45 svnadmin dump svn-repo > ../startrev.svndump No newline at end of file
@@ -0,0 +1,49 b''
1 #!/bin/sh
2 #
3 # Use this script to generate tags.svndump
4 #
5
6 mkdir temp
7 cd temp
8
9 mkdir project-orig
10 cd project-orig
11 mkdir trunk
12 mkdir branches
13 mkdir tags
14 mkdir unrelated
15 cd ..
16
17 svnadmin create svn-repo
18 svnurl=file://`pwd`/svn-repo
19 svn import project-orig $svnurl -m "init projA"
20
21 svn co $svnurl project
22 cd project
23 echo a > trunk/a
24 svn add trunk/a
25 svn ci -m adda
26 echo a >> trunk/a
27 svn ci -m changea
28 echo a >> trunk/a
29 svn ci -m changea2
30 # Add an unrelated commit to test that tags are bound to the
31 # correct "from" revision and not a dummy one
32 echo a >> unrelated/dummy
33 svn add unrelated/dummy
34 svn ci -m unrelatedchange
35 # Tag current revision
36 svn up
37 svn copy trunk tags/trunk.v1
38 svn copy trunk tags/trunk.badtag
39 svn ci -m "tagging trunk.v1 trunk.badtag"
40 echo a >> trunk/a
41 svn ci -m changea3
42 # Fix the bad tag
43 # trunk.badtag should not show in converted tags
44 svn up
45 svn mv tags/trunk.badtag tags/trunk.goodtag
46 svn ci -m "fix trunk.badtag"
47 cd ..
48
49 svnadmin dump svn-repo > ../tags.svndump No newline at end of file
@@ -0,0 +1,295 b''
1 SVN-fs-dump-format-version: 2
2
3 UUID: 65371b91-a2cf-4cb1-a047-08b28c3b4c40
4
5 Revision-number: 0
6 Prop-content-length: 56
7 Content-length: 56
8
9 K 8
10 svn:date
11 V 27
12 2008-12-06T13:50:23.869747Z
13 PROPS-END
14
15 Revision-number: 1
16 Prop-content-length: 112
17 Content-length: 112
18
19 K 7
20 svn:log
21 V 10
22 init projA
23 K 10
24 svn:author
25 V 7
26 pmezard
27 K 8
28 svn:date
29 V 27
30 2008-12-06T13:50:23.944361Z
31 PROPS-END
32
33 Node-path: branches
34 Node-kind: dir
35 Node-action: add
36 Prop-content-length: 10
37 Content-length: 10
38
39 PROPS-END
40
41
42 Node-path: tags
43 Node-kind: dir
44 Node-action: add
45 Prop-content-length: 10
46 Content-length: 10
47
48 PROPS-END
49
50
51 Node-path: trunk
52 Node-kind: dir
53 Node-action: add
54 Prop-content-length: 10
55 Content-length: 10
56
57 PROPS-END
58
59
60 Node-path: unrelated
61 Node-kind: dir
62 Node-action: add
63 Prop-content-length: 10
64 Content-length: 10
65
66 PROPS-END
67
68
69 Revision-number: 2
70 Prop-content-length: 105
71 Content-length: 105
72
73 K 7
74 svn:log
75 V 4
76 adda
77 K 10
78 svn:author
79 V 7
80 pmezard
81 K 8
82 svn:date
83 V 27
84 2008-12-06T13:50:25.174397Z
85 PROPS-END
86
87 Node-path: trunk/a
88 Node-kind: file
89 Node-action: add
90 Prop-content-length: 10
91 Text-content-length: 2
92 Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3
93 Content-length: 12
94
95 PROPS-END
96 a
97
98
99 Revision-number: 3
100 Prop-content-length: 108
101 Content-length: 108
102
103 K 7
104 svn:log
105 V 7
106 changea
107 K 10
108 svn:author
109 V 7
110 pmezard
111 K 8
112 svn:date
113 V 27
114 2008-12-06T13:50:26.148468Z
115 PROPS-END
116
117 Node-path: trunk/a
118 Node-kind: file
119 Node-action: change
120 Text-content-length: 4
121 Text-content-md5: 0d227f1abf8c2932d342e9b99cc957eb
122 Content-length: 4
123
124 a
125 a
126
127
128 Revision-number: 4
129 Prop-content-length: 109
130 Content-length: 109
131
132 K 7
133 svn:log
134 V 8
135 changea2
136 K 10
137 svn:author
138 V 7
139 pmezard
140 K 8
141 svn:date
142 V 27
143 2008-12-06T13:50:27.147988Z
144 PROPS-END
145
146 Node-path: trunk/a
147 Node-kind: file
148 Node-action: change
149 Text-content-length: 6
150 Text-content-md5: 7d4ebf8f298d22fc349a91725b00af1c
151 Content-length: 6
152
153 a
154 a
155 a
156
157
158 Revision-number: 5
159 Prop-content-length: 117
160 Content-length: 117
161
162 K 7
163 svn:log
164 V 15
165 unrelatedchange
166 K 10
167 svn:author
168 V 7
169 pmezard
170 K 8
171 svn:date
172 V 27
173 2008-12-06T13:50:28.174989Z
174 PROPS-END
175
176 Node-path: unrelated/dummy
177 Node-kind: file
178 Node-action: add
179 Prop-content-length: 10
180 Text-content-length: 2
181 Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3
182 Content-length: 12
183
184 PROPS-END
185 a
186
187
188 Revision-number: 6
189 Prop-content-length: 131
190 Content-length: 131
191
192 K 7
193 svn:log
194 V 29
195 tagging trunk.v1 trunk.badtag
196 K 10
197 svn:author
198 V 7
199 pmezard
200 K 8
201 svn:date
202 V 27
203 2008-12-06T13:50:32.157783Z
204 PROPS-END
205
206 Node-path: tags/trunk.badtag
207 Node-kind: dir
208 Node-action: add
209 Node-copyfrom-rev: 5
210 Node-copyfrom-path: trunk
211 Prop-content-length: 34
212 Content-length: 34
213
214 K 13
215 svn:mergeinfo
216 V 0
217
218 PROPS-END
219
220
221 Node-path: tags/trunk.v1
222 Node-kind: dir
223 Node-action: add
224 Node-copyfrom-rev: 5
225 Node-copyfrom-path: trunk
226 Prop-content-length: 34
227 Content-length: 34
228
229 K 13
230 svn:mergeinfo
231 V 0
232
233 PROPS-END
234
235
236 Revision-number: 7
237 Prop-content-length: 109
238 Content-length: 109
239
240 K 7
241 svn:log
242 V 8
243 changea3
244 K 10
245 svn:author
246 V 7
247 pmezard
248 K 8
249 svn:date
250 V 27
251 2008-12-06T13:50:33.145803Z
252 PROPS-END
253
254 Node-path: trunk/a
255 Node-kind: file
256 Node-action: change
257 Text-content-length: 8
258 Text-content-md5: d12178e74d8774e34361e0a08d1fd2b7
259 Content-length: 8
260
261 a
262 a
263 a
264 a
265
266
267 Revision-number: 8
268 Prop-content-length: 118
269 Content-length: 118
270
271 K 7
272 svn:log
273 V 16
274 fix trunk.badtag
275 K 10
276 svn:author
277 V 7
278 pmezard
279 K 8
280 svn:date
281 V 27
282 2008-12-06T13:50:36.153842Z
283 PROPS-END
284
285 Node-path: tags/trunk.goodtag
286 Node-kind: dir
287 Node-action: add
288 Node-copyfrom-rev: 7
289 Node-copyfrom-path: tags/trunk.badtag
290
291
292 Node-path: tags/trunk.badtag
293 Node-action: delete
294
295
@@ -724,12 +724,6 b' class svn_source(converter_source):'
724
724
725 self.child_cset = None
725 self.child_cset = None
726
726
727 def isdescendantof(parent, child):
728 if not child or not parent or not child.startswith(parent):
729 return False
730 subpath = child[len(parent):]
731 return len(subpath) > 1 and subpath[0] == '/'
732
733 def parselogentry(orig_paths, revnum, author, date, message):
727 def parselogentry(orig_paths, revnum, author, date, message):
734 """Return the parsed commit object or None, and True if
728 """Return the parsed commit object or None, and True if
735 the revision is a branch root.
729 the revision is a branch root.
@@ -752,21 +746,10 b' class svn_source(converter_source):'
752 if root_paths:
746 if root_paths:
753 path, ent = root_paths[-1]
747 path, ent = root_paths[-1]
754 if ent.copyfrom_path:
748 if ent.copyfrom_path:
755 # If dir was moved while one of its file was removed
756 # the log may look like:
757 # A /dir (from /dir:x)
758 # A /dir/a (from /dir/a:y)
759 # A /dir/b (from /dir/b:z)
760 # ...
761 # for all remaining children.
762 # Let's take the highest child element from rev as source.
763 copies = [(p,e) for p,e in orig_paths[:-1]
764 if isdescendantof(ent.copyfrom_path, e.copyfrom_path)]
765 fromrev = max([e.copyfrom_rev for p,e in copies] + [ent.copyfrom_rev])
766 branched = True
749 branched = True
767 newpath = ent.copyfrom_path + self.module[len(path):]
750 newpath = ent.copyfrom_path + self.module[len(path):]
768 # ent.copyfrom_rev may not be the actual last revision
751 # ent.copyfrom_rev may not be the actual last revision
769 previd = self.latest(newpath, fromrev)
752 previd = self.latest(newpath, ent.copyfrom_rev)
770 if previd is not None:
753 if previd is not None:
771 prevmodule, prevnum = self.revsplit(previd)[1:]
754 prevmodule, prevnum = self.revsplit(previd)[1:]
772 if prevnum >= self.startrev:
755 if prevnum >= self.startrev:
@@ -12,6 +12,7 b' echo "convert = " >> $HGRCPATH'
12 echo "hgext.graphlog =" >> $HGRCPATH
12 echo "hgext.graphlog =" >> $HGRCPATH
13
13
14 svnadmin create svn-repo
14 svnadmin create svn-repo
15 cat "$TESTDIR/svn/branches.svndump" | svnadmin load svn-repo > /dev/null
15
16
16 svnpath=`pwd | fix_path`
17 svnpath=`pwd | fix_path`
17 # SVN wants all paths to start with a slash. Unfortunately,
18 # SVN wants all paths to start with a slash. Unfortunately,
@@ -20,73 +21,10 b' expr $svnpath : "\\/" > /dev/null'
20 if [ $? -ne 0 ]; then
21 if [ $? -ne 0 ]; then
21 svnpath='/'$svnpath
22 svnpath='/'$svnpath
22 fi
23 fi
23
24 svnurl=file://$svnpath/svn-repo
24 echo % initial svn import
25 mkdir projA
26 cd projA
27 mkdir trunk
28 mkdir branches
29 mkdir tags
30 cd ..
31
32 svnurl=file://$svnpath/svn-repo/projA
33 svn import -m "init projA" projA $svnurl | fix_path
34
35 echo % update svn repository
36 svn co $svnurl A | fix_path
37 cd A
38 echo a > trunk/a
39 echo b > trunk/b
40 echo c > trunk/c
41 # Add a file within branches, used to confuse branch detection
42 echo d > branches/notinbranch
43 svn add trunk/a trunk/b trunk/c branches/notinbranch
44 svn ci -m hello
45
46 echo % branch to old
47 svn copy trunk branches/old
48 svn rm branches/old/c
49 svn ci -m "branch trunk, remove c"
50 svn up
51
52 echo % update trunk
53 "$TESTDIR/svn-safe-append.py" a trunk/a
54 svn ci -m "change a"
55
56 echo % update old branch
57 "$TESTDIR/svn-safe-append.py" b branches/old/b
58 svn ci -m "change b"
59
60 echo % create a cross-branch revision
61 svn move trunk/b branches/old/c
62 "$TESTDIR/svn-safe-append.py" c branches/old/c
63 svn ci -m "move and update c"
64
65 echo % update old branch again
66 "$TESTDIR/svn-safe-append.py" b branches/old/b
67 svn ci -m "change b again"
68
69 echo % move back and forth between branch of similar names
70 # This used to generate fake copy records
71 svn up
72 svn move branches/old branches/old2
73 svn ci -m "move to old2"
74 svn move branches/old2 branches/old
75 svn ci -m "move back to old"
76
77 echo % update trunk again
78 "$TESTDIR/svn-safe-append.py" a trunk/a
79 svn ci -m "last change to a"
80 cd ..
81
25
82 echo % convert trunk and branches
26 echo % convert trunk and branches
83 hg convert --datesort $svnurl A-hg
27 hg convert --datesort -r 10 $svnurl A-hg
84
85 echo % branch again from a converted revision
86 cd A
87 svn copy -r 1 $svnurl/trunk branches/old3
88 svn ci -m "branch trunk@1 into old3"
89 cd ..
90
28
91 echo % convert again
29 echo % convert again
92 hg convert --datesort $svnurl A-hg
30 hg convert --datesort $svnurl A-hg
@@ -1,77 +1,3 b''
1 % initial svn import
2 Adding projA/trunk
3 Adding projA/branches
4 Adding projA/tags
5
6 Committed revision 1.
7 % update svn repository
8 A A/trunk
9 A A/branches
10 A A/tags
11 Checked out revision 1.
12 A trunk/a
13 A trunk/b
14 A trunk/c
15 A branches/notinbranch
16 Adding branches/notinbranch
17 Adding trunk/a
18 Adding trunk/b
19 Adding trunk/c
20 Transmitting file data ....
21 Committed revision 2.
22 % branch to old
23 A branches/old
24 D branches/old/c
25 Adding branches/old
26 Adding branches/old/a
27 Adding branches/old/b
28 Deleting branches/old/c
29
30 Committed revision 3.
31 At revision 3.
32 % update trunk
33 Sending trunk/a
34 Transmitting file data .
35 Committed revision 4.
36 % update old branch
37 Sending branches/old/b
38 Transmitting file data .
39 Committed revision 5.
40 % create a cross-branch revision
41 A branches/old/c
42 D trunk/b
43 Adding branches/old/c
44 Deleting trunk/b
45 Transmitting file data .
46 Committed revision 6.
47 % update old branch again
48 Sending branches/old/b
49 Transmitting file data .
50 Committed revision 7.
51 % move back and forth between branch of similar names
52 At revision 7.
53 A branches/old2
54 D branches/old/a
55 D branches/old/b
56 D branches/old/c
57 D branches/old
58 Deleting branches/old
59 Adding branches/old2
60
61 Committed revision 8.
62 A branches/old
63 D branches/old2/a
64 D branches/old2/b
65 D branches/old2/c
66 D branches/old2
67 Adding branches/old
68 Deleting branches/old2
69
70 Committed revision 9.
71 % update trunk again
72 Sending trunk/a
73 Transmitting file data .
74 Committed revision 10.
75 % convert trunk and branches
1 % convert trunk and branches
76 initializing destination A-hg repository
2 initializing destination A-hg repository
77 scanning source...
3 scanning source...
@@ -88,12 +14,6 b' 3 change b again'
88 2 move to old2
14 2 move to old2
89 1 move back to old
15 1 move back to old
90 0 last change to a
16 0 last change to a
91 % branch again from a converted revision
92 Checked out revision 1.
93 A branches/old3
94 Adding branches/old3
95
96 Committed revision 11.
97 % convert again
17 % convert again
98 scanning source...
18 scanning source...
99 sorting...
19 sorting...
@@ -117,8 +37,8 b' o branch=old3 11 branch trunk@1 into ol'
117 | | |
37 | | |
118 | o | branch= 3 change a files: a
38 | o | branch= 3 change a files: a
119 | | |
39 | | |
120 | | o branch=old 2 branch trunk, remove c files:
40 +---o branch=old 2 branch trunk, remove c files: a b
121 | |/
41 | |
122 | o branch= 1 hello files: a b c
42 | o branch= 1 hello files: a b c
123 |/
43 |/
124 o branch= 0 init projA files:
44 o branch= 0 init projA files:
@@ -12,6 +12,7 b' echo "convert = " >> $HGRCPATH'
12 echo "hgext.graphlog =" >> $HGRCPATH
12 echo "hgext.graphlog =" >> $HGRCPATH
13
13
14 svnadmin create svn-repo
14 svnadmin create svn-repo
15 cat "$TESTDIR/svn/move.svndump" | svnadmin load svn-repo > /dev/null
15
16
16 svnpath=`pwd | fix_path`
17 svnpath=`pwd | fix_path`
17 # SVN wants all paths to start with a slash. Unfortunately,
18 # SVN wants all paths to start with a slash. Unfortunately,
@@ -20,58 +21,7 b' expr $svnpath : "\\/" > /dev/null'
20 if [ $? -ne 0 ]; then
21 if [ $? -ne 0 ]; then
21 svnpath='/'$svnpath
22 svnpath='/'$svnpath
22 fi
23 fi
23
24 svnurl=file://$svnpath/svn-repo
24 echo % initial svn import
25 mkdir projA
26 cd projA
27 mkdir trunk
28 echo a > trunk/a
29 mkdir trunk/d1
30 mkdir trunk/d2
31 echo b > trunk/d1/b
32 echo c > trunk/d1/c
33 echo d > trunk/d2/d
34 cd ..
35
36 svnurl=file://$svnpath/svn-repo/projA
37 svn import -m "init projA" projA $svnurl | fix_path
38
39 # Build a module renaming chain which used to confuse the converter.
40 echo % update svn repository
41 svn co $svnurl A | fix_path
42 cd A
43 "$TESTDIR/svn-safe-append.py" a trunk/a
44 "$TESTDIR/svn-safe-append.py" c trunk/d1/c
45 svn ci -m commitbeforemove
46 svn mv $svnurl/trunk $svnurl/subproject -m movedtrunk
47 svn up
48 mkdir subproject/trunk
49 svn add subproject/trunk
50 svn ci -m createtrunk
51 mkdir subproject/branches
52 svn add subproject/branches
53 svn ci -m createbranches
54 svn mv $svnurl/subproject/d1 $svnurl/subproject/trunk/d1 -m moved1
55 svn mv $svnurl/subproject/d2 $svnurl/subproject/trunk/d2 -m moved2
56 svn up
57 "$TESTDIR/svn-safe-append.py" b subproject/trunk/d1/b
58 svn rm subproject/trunk/d2
59 svn ci -m "changeb and rm d2"
60 svn mv $svnurl/subproject/trunk/d1 $svnurl/subproject/branches/d1 -m moved1again
61
62 if svn help copy | grep 'SRC\[@REV\]' > /dev/null 2>&1; then
63 # SVN >= 1.5 replaced the -r REV syntax with @REV
64 echo % copy a file from a past revision
65 svn copy $svnurl/subproject/trunk/d2/d@7 $svnurl/subproject/trunk -m copyfilefrompast
66 echo % copy a directory from a past revision
67 svn copy $svnurl/subproject/trunk/d2@7 $svnurl/subproject/trunk -m copydirfrompast
68 else
69 echo % copy a file from a past revision
70 svn copy -r 7 $svnurl/subproject/trunk/d2/d $svnurl/subproject/trunk -m copyfilefrompast
71 echo % copy a directory from a past revision
72 svn copy -r 7 $svnurl/subproject/trunk/d2 $svnurl/subproject/trunk -m copydirfrompast
73 fi
74 cd ..
75
25
76 echo % convert trunk and branches
26 echo % convert trunk and branches
77 hg convert --datesort $svnurl/subproject A-hg
27 hg convert --datesort $svnurl/subproject A-hg
@@ -1,71 +1,3 b''
1 % initial svn import
2 Adding projA/trunk
3 Adding projA/trunk/a
4 Adding projA/trunk/d1
5 Adding projA/trunk/d1/b
6 Adding projA/trunk/d1/c
7 Adding projA/trunk/d2
8 Adding projA/trunk/d2/d
9
10 Committed revision 1.
11 % update svn repository
12 A A/trunk
13 A A/trunk/a
14 A A/trunk/d1
15 A A/trunk/d1/b
16 A A/trunk/d1/c
17 A A/trunk/d2
18 A A/trunk/d2/d
19 Checked out revision 1.
20 Sending trunk/a
21 Sending trunk/d1/c
22 Transmitting file data ..
23 Committed revision 2.
24
25 Committed revision 3.
26 D trunk
27 A subproject
28 A subproject/a
29 A subproject/d1
30 A subproject/d1/b
31 A subproject/d1/c
32 A subproject/d2
33 A subproject/d2/d
34 Updated to revision 3.
35 A subproject/trunk
36 Adding subproject/trunk
37
38 Committed revision 4.
39 A subproject/branches
40 Adding subproject/branches
41
42 Committed revision 5.
43
44 Committed revision 6.
45
46 Committed revision 7.
47 A subproject/trunk/d1
48 A subproject/trunk/d1/b
49 A subproject/trunk/d1/c
50 A subproject/trunk/d2
51 A subproject/trunk/d2/d
52 D subproject/d1
53 D subproject/d2
54 Updated to revision 7.
55 D subproject/trunk/d2/d
56 D subproject/trunk/d2
57 Sending subproject/trunk/d1/b
58 Deleting subproject/trunk/d2
59 Transmitting file data .
60 Committed revision 8.
61
62 Committed revision 9.
63 % copy a file from a past revision
64
65 Committed revision 10.
66 % copy a directory from a past revision
67
68 Committed revision 11.
69 % convert trunk and branches
1 % convert trunk and branches
70 initializing destination A-hg repository
2 initializing destination A-hg repository
71 scanning source...
3 scanning source...
@@ -12,6 +12,7 b' echo "convert = " >> $HGRCPATH'
12 echo "hgext.graphlog =" >> $HGRCPATH
12 echo "hgext.graphlog =" >> $HGRCPATH
13
13
14 svnadmin create svn-repo
14 svnadmin create svn-repo
15 cat "$TESTDIR/svn/startrev.svndump" | svnadmin load svn-repo > /dev/null
15
16
16 svnpath=`pwd | fix_path`
17 svnpath=`pwd | fix_path`
17 # SVN wants all paths to start with a slash. Unfortunately,
18 # SVN wants all paths to start with a slash. Unfortunately,
@@ -20,43 +21,7 b' expr $svnpath : "\\/" > /dev/null'
20 if [ $? -ne 0 ]; then
21 if [ $? -ne 0 ]; then
21 svnpath='/'$svnpath
22 svnpath='/'$svnpath
22 fi
23 fi
23
24 svnurl=file://$svnpath/svn-repo
24 echo % initial svn import
25 mkdir projA
26 cd projA
27 mkdir trunk
28 mkdir branches
29 mkdir tags
30 cd ..
31
32 svnurl=file://$svnpath/svn-repo/projA
33 svn import -m "init projA" projA $svnurl | fix_path
34
35 echo % update svn repository
36 svn co $svnurl A | fix_path
37 cd A
38 echo a > trunk/a
39 echo b > trunk/b
40 svn add trunk/a trunk/b
41 svn ci -m createab
42 svn rm trunk/b
43 svn ci -m removeb
44 svn up
45 "$TESTDIR/svn-safe-append.py" a trunk/a
46 svn ci -m changeaa
47
48 echo % branch
49 svn up
50 svn copy trunk branches/branch1
51 "$TESTDIR/svn-safe-append.py" a branches/branch1/a
52 svn ci -m "branch, changeaaa"
53
54 "$TESTDIR/svn-safe-append.py" a branches/branch1/a
55 echo c > branches/branch1/c
56 svn add branches/branch1/c
57 svn ci -m "addc,changeaaaa"
58 svn up
59 cd ..
60
25
61 convert()
26 convert()
62 {
27 {
@@ -1,41 +1,3 b''
1 % initial svn import
2 Adding projA/trunk
3 Adding projA/branches
4 Adding projA/tags
5
6 Committed revision 1.
7 % update svn repository
8 A A/trunk
9 A A/branches
10 A A/tags
11 Checked out revision 1.
12 A trunk/a
13 A trunk/b
14 Adding trunk/a
15 Adding trunk/b
16 Transmitting file data ..
17 Committed revision 2.
18 D trunk/b
19 Deleting trunk/b
20
21 Committed revision 3.
22 At revision 3.
23 Sending trunk/a
24 Transmitting file data .
25 Committed revision 4.
26 % branch
27 At revision 4.
28 A branches/branch1
29 Adding branches/branch1
30 Sending branches/branch1/a
31 Transmitting file data .
32 Committed revision 5.
33 A branches/branch1/c
34 Sending branches/branch1/a
35 Adding branches/branch1/c
36 Transmitting file data ..
37 Committed revision 6.
38 At revision 6.
39 % convert before branching point
1 % convert before branching point
40 initializing destination A-r3-hg repository
2 initializing destination A-r3-hg repository
41 scanning source...
3 scanning source...
@@ -12,6 +12,7 b' echo "convert = " >> $HGRCPATH'
12 echo "hgext.graphlog =" >> $HGRCPATH
12 echo "hgext.graphlog =" >> $HGRCPATH
13
13
14 svnadmin create svn-repo
14 svnadmin create svn-repo
15 cat "$TESTDIR/svn/tags.svndump" | svnadmin load svn-repo > /dev/null
15
16
16 svnpath=`pwd | fix_path`
17 svnpath=`pwd | fix_path`
17 # SVN wants all paths to start with a slash. Unfortunately,
18 # SVN wants all paths to start with a slash. Unfortunately,
@@ -20,47 +21,7 b' expr $svnpath : "\\/" > /dev/null'
20 if [ $? -ne 0 ]; then
21 if [ $? -ne 0 ]; then
21 svnpath='/'$svnpath
22 svnpath='/'$svnpath
22 fi
23 fi
23
24 svnurl=file://$svnpath/svn-repo
24 echo % initial svn import
25 mkdir projA
26 cd projA
27 mkdir trunk
28 mkdir branches
29 mkdir tags
30 mkdir unrelated
31 cd ..
32
33 svnurl=file://$svnpath/svn-repo/projA
34 svn import -m "init projA" projA $svnurl | fix_path | sort
35
36 echo % update svn repository
37 svn co $svnurl A | fix_path
38 cd A
39 echo a > trunk/a
40 svn add trunk/a
41 svn ci -m adda
42 "$TESTDIR/svn-safe-append.py" a trunk/a
43 svn ci -m changea
44 "$TESTDIR/svn-safe-append.py" a trunk/a
45 svn ci -m changea2
46 # Add an unrelated commit to test that tags are bound to the
47 # correct "from" revision and not a dummy one
48 "$TESTDIR/svn-safe-append.py" a unrelated/dummy
49 svn add unrelated/dummy
50 svn ci -m unrelatedchange
51 echo % tag current revision
52 svn up
53 svn copy trunk tags/trunk.v1
54 svn copy trunk tags/trunk.badtag
55 svn ci -m "tagging trunk.v1 trunk.badtag"
56 "$TESTDIR/svn-safe-append.py" a trunk/a
57 svn ci -m changea3
58 echo % fix the bad tag
59 # trunk.badtag should not show in converted tags
60 svn up
61 svn mv tags/trunk.badtag tags/trunk.goodtag
62 svn ci -m "fix trunk.badtag"
63 cd ..
64
25
65 echo % convert
26 echo % convert
66 hg convert --datesort $svnurl A-hg
27 hg convert --datesort $svnurl A-hg
@@ -1,50 +1,3 b''
1 % initial svn import
2
3 Adding projA/branches
4 Adding projA/tags
5 Adding projA/trunk
6 Adding projA/unrelated
7 Committed revision 1.
8 % update svn repository
9 A A/trunk
10 A A/unrelated
11 A A/branches
12 A A/tags
13 Checked out revision 1.
14 A trunk/a
15 Adding trunk/a
16 Transmitting file data .
17 Committed revision 2.
18 Sending trunk/a
19 Transmitting file data .
20 Committed revision 3.
21 Sending trunk/a
22 Transmitting file data .
23 Committed revision 4.
24 A unrelated/dummy
25 Adding unrelated/dummy
26 Transmitting file data .
27 Committed revision 5.
28 % tag current revision
29 At revision 5.
30 A tags/trunk.v1
31 A tags/trunk.badtag
32 Adding tags/trunk.badtag
33 Adding tags/trunk.v1
34
35 Committed revision 6.
36 Sending trunk/a
37 Transmitting file data .
38 Committed revision 7.
39 % fix the bad tag
40 At revision 7.
41 A tags/trunk.goodtag
42 D tags/trunk.badtag/a
43 D tags/trunk.badtag
44 Deleting tags/trunk.badtag
45 Adding tags/trunk.goodtag
46
47 Committed revision 8.
48 % convert
1 % convert
49 initializing destination A-hg repository
2 initializing destination A-hg repository
50 scanning source...
3 scanning source...
General Comments 0
You need to be logged in to leave comments. Login now