diff mercurial/upgrade.py @ 44413:f0027a3dd7cb

revlog-compression: update the config to be a list format.revlog-compression is now a list of engine, the first supported one is to be used. Doing this have several benefits: 1) this is fully backward compatible, config using a single entry will be read as a single item list, not changing any behavior. 2) This open the way to use zstd by default without impacting platform were it is not available. This will be done in a later changesets. Using zstd provide a significant performance boost explained in : bb271ec2fbfb. However zstd is not available in some cases, A notable example is the `--pure` version of Mercurial which doesn't come with zstd support. Differential Revision: https://phab.mercurial-scm.org/D8148
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 19 Feb 2020 17:30:04 +0100
parents ad84fc97d120
children 9d2b2df2c2ba
line wrap: on
line diff
--- a/mercurial/upgrade.py	Wed Feb 19 13:39:00 2020 +0530
+++ b/mercurial/upgrade.py	Wed Feb 19 17:30:04 2020 +0100
@@ -449,7 +449,14 @@
 
     @classmethod
     def fromconfig(cls, repo):
-        return repo.ui.config(b'format', b'revlog-compression')
+        compengines = repo.ui.configlist(b'format', b'revlog-compression')
+        # return the first valid value as the selection code would do
+        for comp in compengines:
+            if comp in util.compengines:
+                return comp
+
+        # no valide compression found lets display it all for clarity
+        return b','.join(compengines)
 
 
 @registerformatvariant