diff --git a/mercurial/upgrade.py b/mercurial/upgrade.py --- a/mercurial/upgrade.py +++ b/mercurial/upgrade.py @@ -128,6 +128,7 @@ newreqs, repo.requirements, actions, + alloptimizations, revlogs, ) @@ -184,17 +185,14 @@ upgrade_op.print_upgrade_actions() upgrade_op.print_affected_revlogs() - unusedoptimize = [i for i in alloptimizations if i not in actions] - - if unusedoptimize: + if upgrade_op.unused_optimizations: ui.status( _( b'additional optimizations are available by specifying ' b'"--optimize ":\n\n' ) ) - for i in unusedoptimize: - ui.status(_(b'%s\n %s\n\n') % (i.name, i.description)) + upgrade_op.print_unused_optimizations() return # Else we're in the run=true case. 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 @@ -563,6 +563,7 @@ new_requirements, current_requirements, actions, + all_optimizations, revlogs_to_process, ): self.ui = ui @@ -583,6 +584,12 @@ self.preserved_requirements = ( self.current_requirements & self.new_requirements ) + self.all_optimizations = all_optimizations + # optimizations which are not used and it's recommended that they + # should use them + self.unused_optimizations = [ + i for i in all_optimizations if i not in self.actions + ] def _write_labeled(self, l, label): """ @@ -640,6 +647,10 @@ self.ui.write((b' - %s\n' % r)) self.ui.write((b'\n')) + def print_unused_optimizations(self): + for i in self.unused_optimizations: + self.ui.status(_(b'%s\n %s\n\n') % (i.name, i.description)) + def has_action(self, name): """ Check whether the upgrade operation will perform this action """ return name in self._actions_names