Show More
@@ -74,48 +74,11 b' def upgraderepo(' | |||||
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) |
@@ -686,3 +686,34 b' def check_source_requirements(repo):' | |||||
686 | m = _(b'cannot upgrade repository; unsupported source requirement: %s') |
|
686 | m = _(b'cannot upgrade repository; unsupported source requirement: %s') | |
687 | blockingreqs = b', '.join(sorted(blockingreqs)) |
|
687 | blockingreqs = b', '.join(sorted(blockingreqs)) | |
688 | raise error.Abort(m % blockingreqs) |
|
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