comparison mercurial/upgrade.py @ 46051:72b7b4bf3e65

upgrade: extract the checking of target requirements change This logic is fairly independant, lets move it out of the main function. Differential Revision: https://phab.mercurial-scm.org/D9485
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 01 Dec 2020 20:24:38 +0100
parents ad9dd4d333be
children c407513a44a3
comparison
equal deleted inserted replaced
46050:ad9dd4d333be 46051:72b7b4bf3e65
72 revlogs.discard(upgrade) 72 revlogs.discard(upgrade)
73 73
74 # Ensure the repository can be upgraded. 74 # Ensure the repository can be upgraded.
75 upgrade_actions.check_source_requirements(repo) 75 upgrade_actions.check_source_requirements(repo)
76 76
77 newreqs = localrepo.newreporequirements( 77 default_options = localrepo.defaultcreateopts(repo.ui)
78 repo.ui, localrepo.defaultcreateopts(repo.ui) 78 newreqs = localrepo.newreporequirements(repo.ui, default_options)
79 )
80 newreqs.update(upgrade_actions.preservedrequirements(repo)) 79 newreqs.update(upgrade_actions.preservedrequirements(repo))
81 80
82 noremovereqs = ( 81 upgrade_actions.check_requirements_changes(repo, newreqs)
83 repo.requirements
84 - newreqs
85 - upgrade_actions.supportremovedrequirements(repo)
86 )
87 if noremovereqs:
88 raise error.Abort(
89 _(
90 b'cannot upgrade repository; requirement would be '
91 b'removed: %s'
92 )
93 % _(b', ').join(sorted(noremovereqs))
94 )
95
96 noaddreqs = (
97 newreqs
98 - repo.requirements
99 - upgrade_actions.allowednewrequirements(repo)
100 )
101 if noaddreqs:
102 raise error.Abort(
103 _(
104 b'cannot upgrade repository; do not support adding '
105 b'requirement: %s'
106 )
107 % _(b', ').join(sorted(noaddreqs))
108 )
109
110 unsupportedreqs = newreqs - upgrade_actions.supporteddestrequirements(repo)
111 if unsupportedreqs:
112 raise error.Abort(
113 _(
114 b'cannot upgrade repository; do not support '
115 b'destination requirement: %s'
116 )
117 % _(b', ').join(sorted(unsupportedreqs))
118 )
119 82
120 # Find and validate all improvements that can be made. 83 # Find and validate all improvements that can be made.
121 alloptimizations = upgrade_actions.findoptimizations(repo) 84 alloptimizations = upgrade_actions.findoptimizations(repo)
122 85
123 # Apply and Validate arguments. 86 # Apply and Validate arguments.