Mercurial > public > mercurial-scm > hg-stable
diff mercurial/upgrade_utils/actions.py @ 46191:aba979b1b90b
upgrade: move `printrequirements()` to UpgradeOperation class
Part of refactor where we make things more arranged and integrated into single
`UpgradeOperation` class.
Differential Revision: https://phab.mercurial-scm.org/D9577
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Sat, 12 Dec 2020 18:09:16 +0530 |
parents | 9ab2ab5bf9af |
children | 25d11b24dedf |
line wrap: on
line diff
--- a/mercurial/upgrade_utils/actions.py Sat Dec 12 18:00:18 2020 +0530 +++ b/mercurial/upgrade_utils/actions.py Sat Dec 12 18:09:16 2020 +0530 @@ -557,12 +557,32 @@ class UpgradeOperation(object): """represent the work to be done during an upgrade""" - def __init__(self, ui, requirements, actions, revlogs_to_process): + def __init__( + self, + ui, + new_requirements, + current_requirements, + actions, + revlogs_to_process, + ): self.ui = ui - self.requirements = requirements + self.new_requirements = new_requirements + self.current_requirements = current_requirements self.actions = actions self._actions_names = set([a.name for a in actions]) self.revlogs_to_process = revlogs_to_process + # requirements which will be added by the operation + self._added_requirements = ( + self.new_requirements - self.current_requirements + ) + # requirements which will be removed by the operation + self._removed_requirements = ( + self.current_requirements - self.new_requirements + ) + # requirements which will be preserved by the operation + self._preserved_requirements = ( + self.current_requirements & self.new_requirements + ) def _write_labeled(self, l, label): """ @@ -575,6 +595,27 @@ self.ui.write(r, label=label) first = False + def print_requirements(self): + self.ui.write(_(b'requirements\n')) + self.ui.write(_(b' preserved: ')) + self._write_labeled( + self._preserved_requirements, "upgrade-repo.requirement.preserved" + ) + self.ui.write((b'\n')) + if self._removed_requirements: + self.ui.write(_(b' removed: ')) + self._write_labeled( + self._removed_requirements, "upgrade-repo.requirement.removed" + ) + self.ui.write((b'\n')) + if self._added_requirements: + self.ui.write(_(b' added: ')) + self._write_labeled( + self._added_requirements, "upgrade-repo.requirement.added" + ) + self.ui.write((b'\n')) + self.ui.write(b'\n') + def print_optimisations(self): optimisations = [a for a in self.actions if a.type == OPTIMISATION] optimisations.sort(key=lambda a: a.name)