Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/ui.py @ 46662:b91a695b3b08
config: use level to properly deal with value priority
A higher priority alias will now take precedence over lower priority ones.
This was a requirements step before using alias more widely, especially to
rename existing and established config option.
Differential Revision: https://phab.mercurial-scm.org/D9927
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 29 Jan 2021 12:17:11 +0100 |
parents | a3dced4b7b04 |
children | 66fb04552122 |
comparison
equal
deleted
inserted
replaced
46661:a3dced4b7b04 | 46662:b91a695b3b08 |
---|---|
660 b"config item: '%s.%s' '%s'" | 660 b"config item: '%s.%s' '%s'" |
661 ) | 661 ) |
662 msg %= (section, name, pycompat.bytestr(default)) | 662 msg %= (section, name, pycompat.bytestr(default)) |
663 self.develwarn(msg, 2, b'warn-config-default') | 663 self.develwarn(msg, 2, b'warn-config-default') |
664 | 664 |
665 candidates = [] | |
666 config = self._data(untrusted) | |
665 for s, n in alternates: | 667 for s, n in alternates: |
666 candidate = self._data(untrusted).get(s, n, None) | 668 candidate = config.get(s, n, None) |
667 if candidate is not None: | 669 if candidate is not None: |
668 value = candidate | 670 candidates.append((s, n, candidate)) |
669 break | 671 if candidates: |
672 | |
673 def level(x): | |
674 return config.level(x[0], x[1]) | |
675 | |
676 value = max(candidates, key=level)[2] | |
670 | 677 |
671 if self.debugflag and not untrusted and self._reportuntrusted: | 678 if self.debugflag and not untrusted and self._reportuntrusted: |
672 for s, n in alternates: | 679 for s, n in alternates: |
673 uvalue = self._ucfg.get(s, n) | 680 uvalue = self._ucfg.get(s, n) |
674 if uvalue is not None and uvalue != value: | 681 if uvalue is not None and uvalue != value: |