# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 2020-12-16 08:36:24 # Node ID a51d345f1404198b95c3a49a096fdb0f97cc7a0a # Parent 083438d6f4035eeb19055a0053b7dd8bface1b9d upgrade: move optimization addition to determineactions() The documentation of `determineactions()` mention that it is given a list returned from `findoptimizations()` however it was not true before this patch. The code extending actions with optimizations also mentioned about it that this should be in determineactions. So let's do what comments at couple of places say. Differential Revision: https://phab.mercurial-scm.org/D9615 diff --git a/mercurial/upgrade.py b/mercurial/upgrade.py --- a/mercurial/upgrade.py +++ b/mercurial/upgrade.py @@ -85,13 +85,7 @@ def upgraderepo( format_upgrades = upgrade_actions.find_format_upgrades(repo) actions = upgrade_actions.determineactions( - repo, format_upgrades, repo.requirements, newreqs - ) - actions.extend( - o - for o in sorted(optimizations) - # determineactions could have added optimisation - if o not in actions + repo, format_upgrades, optimizations, repo.requirements, newreqs ) removedreqs = repo.requirements - newreqs diff --git a/mercurial/upgrade_utils/actions.py b/mercurial/upgrade_utils/actions.py --- a/mercurial/upgrade_utils/actions.py +++ b/mercurial/upgrade_utils/actions.py @@ -526,7 +526,9 @@ def findoptimizations(repo): return list(ALL_OPTIMISATIONS) -def determineactions(repo, format_upgrades, sourcereqs, destreqs): +def determineactions( + repo, format_upgrades, optimizations, sourcereqs, destreqs +): """Determine upgrade actions that will be performed. Given a list of improvements as returned by ``find_format_upgrades`` and @@ -551,6 +553,8 @@ def determineactions(repo, format_upgrad newactions.append(d) + newactions.extend(o for o in sorted(optimizations) if o not in newactions) + # FUTURE consider adding some optimizations here for certain transitions. # e.g. adding generaldelta could schedule parent redeltas.