496 (revcount, frevcount, mrevcount, crevcount)) |
496 (revcount, frevcount, mrevcount, crevcount)) |
497 ui.write(_('migrating %s in store; %s tracked data\n') % ( |
497 ui.write(_('migrating %s in store; %s tracked data\n') % ( |
498 (util.bytecount(srcsize), util.bytecount(srcrawsize)))) |
498 (util.bytecount(srcsize), util.bytecount(srcrawsize)))) |
499 |
499 |
500 # Used to keep track of progress. |
500 # Used to keep track of progress. |
501 progress = [] |
501 progress = None |
502 def oncopiedrevision(rl, rev, node): |
502 def oncopiedrevision(rl, rev, node): |
503 progress[1] += 1 |
503 progress.increment() |
504 srcrepo.ui.progress(progress[0], progress[1], total=progress[2]) |
|
505 |
504 |
506 # Do the actual copying. |
505 # Do the actual copying. |
507 # FUTURE this operation can be farmed off to worker processes. |
506 # FUTURE this operation can be farmed off to worker processes. |
508 seen = set() |
507 seen = set() |
509 for unencoded, encoded, size in srcrepo.store.walk(): |
508 for unencoded, encoded, size in srcrepo.store.walk(): |
521 ui.write(_('migrating changelog containing %d revisions ' |
520 ui.write(_('migrating changelog containing %d revisions ' |
522 '(%s in store; %s tracked data)\n') % |
521 '(%s in store; %s tracked data)\n') % |
523 (crevcount, util.bytecount(csrcsize), |
522 (crevcount, util.bytecount(csrcsize), |
524 util.bytecount(crawsize))) |
523 util.bytecount(crawsize))) |
525 seen.add('c') |
524 seen.add('c') |
526 progress[:] = [_('changelog revisions'), 0, crevcount] |
525 progress = srcrepo.ui.makeprogress(_('changelog revisions'), |
|
526 total=crevcount) |
527 elif isinstance(oldrl, manifest.manifestrevlog) and 'm' not in seen: |
527 elif isinstance(oldrl, manifest.manifestrevlog) and 'm' not in seen: |
528 ui.write(_('finished migrating %d filelog revisions across %d ' |
528 ui.write(_('finished migrating %d filelog revisions across %d ' |
529 'filelogs; change in size: %s\n') % |
529 'filelogs; change in size: %s\n') % |
530 (frevcount, fcount, util.bytecount(fdstsize - fsrcsize))) |
530 (frevcount, fcount, util.bytecount(fdstsize - fsrcsize))) |
531 |
531 |
533 '(%s in store; %s tracked data)\n') % |
533 '(%s in store; %s tracked data)\n') % |
534 (mcount, mrevcount, util.bytecount(msrcsize), |
534 (mcount, mrevcount, util.bytecount(msrcsize), |
535 util.bytecount(mrawsize))) |
535 util.bytecount(mrawsize))) |
536 seen.add('m') |
536 seen.add('m') |
537 if progress: |
537 if progress: |
538 ui.progress(progress[0], None) |
538 progress.complete() |
539 progress[:] = [_('manifest revisions'), 0, mrevcount] |
539 progress = srcrepo.ui.makeprogress(_('manifest revisions'), |
|
540 total=mrevcount) |
540 elif 'f' not in seen: |
541 elif 'f' not in seen: |
541 ui.write(_('migrating %d filelogs containing %d revisions ' |
542 ui.write(_('migrating %d filelogs containing %d revisions ' |
542 '(%s in store; %s tracked data)\n') % |
543 '(%s in store; %s tracked data)\n') % |
543 (fcount, frevcount, util.bytecount(fsrcsize), |
544 (fcount, frevcount, util.bytecount(fsrcsize), |
544 util.bytecount(frawsize))) |
545 util.bytecount(frawsize))) |
545 seen.add('f') |
546 seen.add('f') |
546 if progress: |
547 if progress: |
547 ui.progress(progress[0], None) |
548 progress.complete() |
548 progress[:] = [_('file revisions'), 0, frevcount] |
549 progress = srcrepo.ui.makeprogress(_('file revisions'), |
549 |
550 total=frevcount) |
550 ui.progress(progress[0], progress[1], total=progress[2]) |
551 |
551 |
552 |
552 ui.note(_('cloning %d revisions from %s\n') % (len(oldrl), unencoded)) |
553 ui.note(_('cloning %d revisions from %s\n') % (len(oldrl), unencoded)) |
553 oldrl.clone(tr, newrl, addrevisioncb=oncopiedrevision, |
554 oldrl.clone(tr, newrl, addrevisioncb=oncopiedrevision, |
554 deltareuse=deltareuse, |
555 deltareuse=deltareuse, |
555 aggressivemergedeltas=aggressivemergedeltas) |
556 aggressivemergedeltas=aggressivemergedeltas) |
566 elif isinstance(newrl, manifest.manifestrevlog): |
567 elif isinstance(newrl, manifest.manifestrevlog): |
567 mdstsize += datasize |
568 mdstsize += datasize |
568 else: |
569 else: |
569 fdstsize += datasize |
570 fdstsize += datasize |
570 |
571 |
571 ui.progress(progress[0], None) |
572 progress.complete() |
572 |
573 |
573 ui.write(_('finished migrating %d changelog revisions; change in size: ' |
574 ui.write(_('finished migrating %d changelog revisions; change in size: ' |
574 '%s\n') % (crevcount, util.bytecount(cdstsize - csrcsize))) |
575 '%s\n') % (crevcount, util.bytecount(cdstsize - csrcsize))) |
575 |
576 |
576 ui.write(_('finished migrating %d total revisions; total change in store ' |
577 ui.write(_('finished migrating %d total revisions; total change in store ' |