diff --git a/mercurial/upgrade.py b/mercurial/upgrade.py --- a/mercurial/upgrade.py +++ b/mercurial/upgrade.py @@ -184,17 +184,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 @@ -583,6 +583,12 @@ self._preserved_requirements = ( self.current_requirements & self.new_requirements ) + # optimizations which are not used and it's recommended that they + # should use them + all_optimizations = findoptimizations(None) + self.unused_optimizations = [ + i for i in all_optimizations if i not in self.actions + ] def _write_labeled(self, l, label): """ @@ -640,6 +646,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