Mercurial > hg
changeset 48445:e7420f75d90d
upgrade: make the list of explicitly specified revlog a dict
This makes various logic simpler and will help making future patch clearer.
Differential Revision: https://phab.mercurial-scm.org/D11868
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 06 Dec 2021 14:40:13 +0100 |
parents | 6e045497b20b |
children | 1d0978cfe968 |
files | mercurial/upgrade.py |
diffstat | 1 files changed, 11 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/upgrade.py Mon Dec 06 11:59:48 2021 +0100 +++ b/mercurial/upgrade.py Mon Dec 06 14:40:13 2021 +0100 @@ -45,11 +45,13 @@ optimize = {} repo = repo.unfiltered() - specentries = ( - (upgrade_engine.UPGRADE_CHANGELOG, changelog), - (upgrade_engine.UPGRADE_MANIFEST, manifest), - (upgrade_engine.UPGRADE_FILELOGS, filelogs), - ) + specified_revlogs = {} + if changelog is not None: + specified_revlogs[upgrade_engine.UPGRADE_CHANGELOG] = changelog + if manifest is not None: + specified_revlogs[upgrade_engine.UPGRADE_MANIFEST] = manifest + if filelogs is not None: + specified_revlogs[upgrade_engine.UPGRADE_FILELOGS] = filelogs # Ensure the repository can be upgraded. upgrade_actions.check_source_requirements(repo) @@ -89,17 +91,16 @@ # check if we need to touch revlog and if so, which ones revlogs = set(upgrade_engine.UPGRADE_ALL_REVLOGS) - specified = [(y, x) for (y, x) in specentries if x is not None] - if specified: + if specified_revlogs: # we have some limitation on revlogs to be recloned - if any(x for y, x in specified): + if any(specified_revlogs.values()): revlogs = set() - for upgrade, enabled in specified: + for upgrade, enabled in specified_revlogs.items(): if enabled: revlogs.add(upgrade) else: # none are enabled - for upgrade, __ in specified: + for upgrade in specified_revlogs.keys(): revlogs.discard(upgrade) # check the consistency of the revlog selection with the planned action