Mercurial > public > mercurial-scm > hg
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. |