diff 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
line wrap: on
line diff
--- a/mercurial/ui.py	Fri Jan 29 11:21:49 2021 +0100
+++ b/mercurial/ui.py	Fri Jan 29 12:17:11 2021 +0100
@@ -662,11 +662,18 @@
             msg %= (section, name, pycompat.bytestr(default))
             self.develwarn(msg, 2, b'warn-config-default')
 
+        candidates = []
+        config = self._data(untrusted)
         for s, n in alternates:
-            candidate = self._data(untrusted).get(s, n, None)
+            candidate = config.get(s, n, None)
             if candidate is not None:
-                value = candidate
-                break
+                candidates.append((s, n, candidate))
+        if candidates:
+
+            def level(x):
+                return config.level(x[0], x[1])
+
+            value = max(candidates, key=level)[2]
 
         if self.debugflag and not untrusted and self._reportuntrusted:
             for s, n in alternates: