Show More
@@ -74,48 +74,11 b' def upgraderepo(' | |||
|
74 | 74 | # Ensure the repository can be upgraded. |
|
75 | 75 | upgrade_actions.check_source_requirements(repo) |
|
76 | 76 | |
|
77 | newreqs = localrepo.newreporequirements( | |
|
78 | repo.ui, localrepo.defaultcreateopts(repo.ui) | |
|
79 | ) | |
|
77 | default_options = localrepo.defaultcreateopts(repo.ui) | |
|
78 | newreqs = localrepo.newreporequirements(repo.ui, default_options) | |
|
80 | 79 | newreqs.update(upgrade_actions.preservedrequirements(repo)) |
|
81 | 80 | |
|
82 | noremovereqs = ( | |
|
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 | ) | |
|
81 | upgrade_actions.check_requirements_changes(repo, newreqs) | |
|
119 | 82 | |
|
120 | 83 | # Find and validate all improvements that can be made. |
|
121 | 84 | alloptimizations = upgrade_actions.findoptimizations(repo) |
@@ -686,3 +686,34 b' def check_source_requirements(repo):' | |||
|
686 | 686 | m = _(b'cannot upgrade repository; unsupported source requirement: %s') |
|
687 | 687 | blockingreqs = b', '.join(sorted(blockingreqs)) |
|
688 | 688 | raise error.Abort(m % blockingreqs) |
|
689 | ||
|
690 | ||
|
691 | ### Verify the validity of the planned requirement changes #################### | |
|
692 | ||
|
693 | ||
|
694 | def check_requirements_changes(repo, new_reqs): | |
|
695 | old_reqs = repo.requirements | |
|
696 | ||
|
697 | support_removal = supportremovedrequirements(repo) | |
|
698 | no_remove_reqs = old_reqs - new_reqs - support_removal | |
|
699 | if no_remove_reqs: | |
|
700 | msg = _(b'cannot upgrade repository; requirement would be removed: %s') | |
|
701 | no_remove_reqs = b', '.join(sorted(no_remove_reqs)) | |
|
702 | raise error.Abort(msg % no_remove_reqs) | |
|
703 | ||
|
704 | support_addition = allowednewrequirements(repo) | |
|
705 | no_add_reqs = new_reqs - old_reqs - support_addition | |
|
706 | if no_add_reqs: | |
|
707 | m = _(b'cannot upgrade repository; do not support adding requirement: ') | |
|
708 | no_add_reqs = b', '.join(sorted(no_add_reqs)) | |
|
709 | raise error.Abort(m + no_add_reqs) | |
|
710 | ||
|
711 | supported = supporteddestrequirements(repo) | |
|
712 | unsupported_reqs = new_reqs - supported | |
|
713 | if unsupported_reqs: | |
|
714 | msg = _( | |
|
715 | b'cannot upgrade repository; do not support destination ' | |
|
716 | b'requirement: %s' | |
|
717 | ) | |
|
718 | unsupported_reqs = b', '.join(sorted(unsupported_reqs)) | |
|
719 | raise error.Abort(msg % unsupported_reqs) |
General Comments 0
You need to be logged in to leave comments.
Login now