##// END OF EJS Templates
engine: unwrap a hard to understand for loop...
Pulkit Goyal -
r46810:4d1cec4e default
parent child Browse files
Show More
@@ -184,6 +184,12 b' def _clonerevlogs('
184 184 cdstsize = 0
185 185
186 186 alldatafiles = list(srcrepo.store.walk())
187 # mapping of data files which needs to be cloned
188 # key is unencoded filename
189 # value is revlog_object_from_srcrepo
190 manifests = {}
191 changelogs = {}
192 filelogs = {}
187 193
188 194 # Perform a pass to collect metadata. This validates we can open all
189 195 # source files and allows a unified progress bar to be displayed.
@@ -209,15 +215,18 b' def _clonerevlogs('
209 215
210 216 # This is for the separate progress bars.
211 217 if isinstance(rl, changelog.changelog):
218 changelogs[unencoded] = rl
212 219 crevcount += len(rl)
213 220 csrcsize += datasize
214 221 crawsize += rawsize
215 222 elif isinstance(rl, manifest.manifestrevlog):
223 manifests[unencoded] = rl
216 224 mcount += 1
217 225 mrevcount += len(rl)
218 226 msrcsize += datasize
219 227 mrawsize += rawsize
220 228 elif isinstance(rl, filelog.filelog):
229 filelogs[unencoded] = rl
221 230 fcount += 1
222 231 frevcount += len(rl)
223 232 fsrcsize += datasize
@@ -248,86 +257,21 b' def _clonerevlogs('
248 257
249 258 sidedatacompanion = getsidedatacompanion(srcrepo, dstrepo)
250 259
251 # Do the actual copying.
252 # FUTURE this operation can be farmed off to worker processes.
253 seen = set()
254 for unencoded, encoded, size in alldatafiles:
255 if unencoded.endswith(b'.d'):
256 continue
257
258 oldrl = _revlogfrompath(srcrepo, unencoded)
259
260 if isinstance(oldrl, changelog.changelog) and b'c' not in seen:
261 ui.status(
262 _(
263 b'finished migrating %d manifest revisions across %d '
264 b'manifests; change in size: %s\n'
265 )
266 % (mrevcount, mcount, util.bytecount(mdstsize - msrcsize))
267 )
268
269 ui.status(
270 _(
271 b'migrating changelog containing %d revisions '
272 b'(%s in store; %s tracked data)\n'
273 )
274 % (
275 crevcount,
276 util.bytecount(csrcsize),
277 util.bytecount(crawsize),
278 )
279 )
280 seen.add(b'c')
281 progress = srcrepo.ui.makeprogress(
282 _(b'changelog revisions'), total=crevcount
283 )
284 elif isinstance(oldrl, manifest.manifestrevlog) and b'm' not in seen:
285 ui.status(
286 _(
287 b'finished migrating %d filelog revisions across %d '
288 b'filelogs; change in size: %s\n'
289 )
290 % (frevcount, fcount, util.bytecount(fdstsize - fsrcsize))
291 )
292
293 ui.status(
294 _(
295 b'migrating %d manifests containing %d revisions '
296 b'(%s in store; %s tracked data)\n'
297 )
298 % (
299 mcount,
300 mrevcount,
301 util.bytecount(msrcsize),
302 util.bytecount(mrawsize),
303 )
304 )
305 seen.add(b'm')
306 if progress:
307 progress.complete()
308 progress = srcrepo.ui.makeprogress(
309 _(b'manifest revisions'), total=mrevcount
310 )
311 elif b'f' not in seen:
312 ui.status(
313 _(
314 b'migrating %d filelogs containing %d revisions '
315 b'(%s in store; %s tracked data)\n'
316 )
317 % (
318 fcount,
319 frevcount,
320 util.bytecount(fsrcsize),
321 util.bytecount(frawsize),
322 )
323 )
324 seen.add(b'f')
325 if progress:
326 progress.complete()
327 progress = srcrepo.ui.makeprogress(
328 _(b'file revisions'), total=frevcount
329 )
330
260 # Migrating filelogs
261 ui.status(
262 _(
263 b'migrating %d filelogs containing %d revisions '
264 b'(%s in store; %s tracked data)\n'
265 )
266 % (
267 fcount,
268 frevcount,
269 util.bytecount(fsrcsize),
270 util.bytecount(frawsize),
271 )
272 )
273 progress = srcrepo.ui.makeprogress(_(b'file revisions'), total=frevcount)
274 for unencoded, oldrl in sorted(filelogs.items()):
331 275 newrl = _perform_clone(
332 276 ui,
333 277 dstrepo,
@@ -342,18 +286,94 b' def _clonerevlogs('
342 286 )
343 287 info = newrl.storageinfo(storedsize=True)
344 288 datasize = info[b'storedsize'] or 0
345
346 289 dstsize += datasize
290 fdstsize += datasize
291 ui.status(
292 _(
293 b'finished migrating %d filelog revisions across %d '
294 b'filelogs; change in size: %s\n'
295 )
296 % (frevcount, fcount, util.bytecount(fdstsize - fsrcsize))
297 )
347 298
348 if isinstance(newrl, changelog.changelog):
349 cdstsize += datasize
350 elif isinstance(newrl, manifest.manifestrevlog):
351 mdstsize += datasize
352 else:
353 fdstsize += datasize
299 # Migrating manifests
300 ui.status(
301 _(
302 b'migrating %d manifests containing %d revisions '
303 b'(%s in store; %s tracked data)\n'
304 )
305 % (
306 mcount,
307 mrevcount,
308 util.bytecount(msrcsize),
309 util.bytecount(mrawsize),
310 )
311 )
312 if progress:
313 progress.complete()
314 progress = srcrepo.ui.makeprogress(
315 _(b'manifest revisions'), total=mrevcount
316 )
317 for unencoded, oldrl in sorted(manifests.items()):
318 newrl = _perform_clone(
319 ui,
320 dstrepo,
321 tr,
322 oldrl,
323 unencoded,
324 deltareuse,
325 forcedeltabothparents,
326 revlogs,
327 sidedatacompanion,
328 oncopiedrevision,
329 )
330 info = newrl.storageinfo(storedsize=True)
331 datasize = info[b'storedsize'] or 0
332 dstsize += datasize
333 mdstsize += datasize
334 ui.status(
335 _(
336 b'finished migrating %d manifest revisions across %d '
337 b'manifests; change in size: %s\n'
338 )
339 % (mrevcount, mcount, util.bytecount(mdstsize - msrcsize))
340 )
354 341
342 # Migrating changelog
343 ui.status(
344 _(
345 b'migrating changelog containing %d revisions '
346 b'(%s in store; %s tracked data)\n'
347 )
348 % (
349 crevcount,
350 util.bytecount(csrcsize),
351 util.bytecount(crawsize),
352 )
353 )
354 if progress:
355 progress.complete()
356 progress = srcrepo.ui.makeprogress(
357 _(b'changelog revisions'), total=crevcount
358 )
359 for unencoded, oldrl in sorted(changelogs.items()):
360 newrl = _perform_clone(
361 ui,
362 dstrepo,
363 tr,
364 oldrl,
365 unencoded,
366 deltareuse,
367 forcedeltabothparents,
368 revlogs,
369 sidedatacompanion,
370 oncopiedrevision,
371 )
372 info = newrl.storageinfo(storedsize=True)
373 datasize = info[b'storedsize'] or 0
374 dstsize += datasize
375 cdstsize += datasize
355 376 progress.complete()
356
357 377 ui.status(
358 378 _(
359 379 b'finished migrating %d changelog revisions; change in size: '
General Comments 0
You need to be logged in to leave comments. Login now