##// END OF EJS Templates
upgrade: extract the checking of target requirements change...
marmoute -
r46666:72b7b4bf default
parent child Browse files
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