Mercurial > public > mercurial-scm > hg
comparison mercurial/upgrade_utils/actions.py @ 46048:f4f956342cf1
upgrade: move requirements checking in a dedicated function
This is a simple an isolated check that can go next to the associated code.
Differential Revision: https://phab.mercurial-scm.org/D9482
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 01 Dec 2020 15:45:23 +0100 |
parents | 4b89cf08d8dc |
children | a2a59cde9b9f |
comparison
equal
deleted
inserted
replaced
46047:4b89cf08d8dc | 46048:f4f956342cf1 |
---|---|
7 | 7 |
8 from __future__ import absolute_import | 8 from __future__ import absolute_import |
9 | 9 |
10 from ..i18n import _ | 10 from ..i18n import _ |
11 from .. import ( | 11 from .. import ( |
12 error, | |
12 localrepo, | 13 localrepo, |
13 requirements, | 14 requirements, |
14 util, | 15 util, |
15 ) | 16 ) |
16 | 17 |
662 | 663 |
663 # FUTURE consider adding some optimizations here for certain transitions. | 664 # FUTURE consider adding some optimizations here for certain transitions. |
664 # e.g. adding generaldelta could schedule parent redeltas. | 665 # e.g. adding generaldelta could schedule parent redeltas. |
665 | 666 |
666 return newactions | 667 return newactions |
668 | |
669 | |
670 def check_source_requirements(repo): | |
671 """Ensure that no existing requirements prevent the repository upgrade""" | |
672 | |
673 required = requiredsourcerequirements(repo) | |
674 missingreqs = required - repo.requirements | |
675 if missingreqs: | |
676 msg = _(b'cannot upgrade repository; requirement missing: %s') | |
677 missingreqs = b', '.join(sorted(missingreqs)) | |
678 raise error.Abort(msg % missingreqs) | |
679 | |
680 blocking = blocksourcerequirements(repo) | |
681 blockingreqs = blocking & repo.requirements | |
682 if blockingreqs: | |
683 m = _(b'cannot upgrade repository; unsupported source requirement: %s') | |
684 blockingreqs = b', '.join(sorted(blockingreqs)) | |
685 raise error.Abort(m % blockingreqs) |