Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/upgrade_utils/engine.py @ 46576:67b5fafd3a46
upgrade: speed up when we have only nodemap to downgrade
Similar to what we do on upgrade, if we have only persistent-nodemap to
downgrade we will just delete the nodemap files and update repository
requirements instead of processing all the revlogs.
After downgrade, we are left with unrequired docket and transaction files which
seems fine but can work on deleting them if someone feels we should.
Differential Revision: https://phab.mercurial-scm.org/D9992
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Wed, 10 Feb 2021 17:08:34 +0530 |
parents | 636853347e14 |
children | 6266d19556ad |
comparison
equal
deleted
inserted
replaced
46575:636853347e14 | 46576:67b5fafd3a46 |
---|---|
474 # hence accessing private attributes can be justified | 474 # hence accessing private attributes can be justified |
475 nodemap.persist_nodemap( | 475 nodemap.persist_nodemap( |
476 tr, unfi.manifestlog._rootstore._revlog, force=True | 476 tr, unfi.manifestlog._rootstore._revlog, force=True |
477 ) | 477 ) |
478 scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements) | 478 scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements) |
479 elif ( | |
480 len(upgrade_op.removed_actions) == 1 | |
481 and [ | |
482 x | |
483 for x in upgrade_op.removed_actions | |
484 if x.name == b'persistent-nodemap' | |
485 ] | |
486 and not upgrade_op.upgrade_actions | |
487 ): | |
488 ui.status( | |
489 _(b'downgrading repository to not use persistent nodemap feature\n') | |
490 ) | |
491 with srcrepo.transaction(b'upgrade') as tr: | |
492 unfi = srcrepo.unfiltered() | |
493 cl = unfi.changelog | |
494 nodemap.delete_nodemap(tr, srcrepo, cl) | |
495 # check comment 20 lines above for accessing private attributes | |
496 nodemap.delete_nodemap( | |
497 tr, srcrepo, unfi.manifestlog._rootstore._revlog | |
498 ) | |
499 scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements) | |
479 else: | 500 else: |
480 with dstrepo.transaction(b'upgrade') as tr: | 501 with dstrepo.transaction(b'upgrade') as tr: |
481 _clonerevlogs( | 502 _clonerevlogs( |
482 ui, | 503 ui, |
483 srcrepo, | 504 srcrepo, |