diff mercurial/upgrade.py @ 42045:d7e751ec679e

compression: display compression level in debugformat Now that we have options to control the compression level, we teach `hg debugformat` about them. This is a useful information when comparing repositories. Note that we have no trace of the compression level used to store existing deltas. Actually, it would even varies from one delta to another. So we display the currently set value.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 02 Apr 2019 11:03:46 -0700
parents a59a74721c76
children 4ee906aa7b60
line wrap: on
line diff
--- a/mercurial/upgrade.py	Wed Mar 27 18:35:59 2019 +0100
+++ b/mercurial/upgrade.py	Tue Apr 02 11:03:46 2019 -0700
@@ -334,6 +334,39 @@
     def fromconfig(cls, repo):
         return repo.ui.config('experimental', 'format.compression')
 
+@registerformatvariant
+class compressionlevel(formatvariant):
+    name = 'compression-level'
+    default = 'default'
+
+    description = _('compression level')
+
+    upgrademessage = _('revlog content will be recompressed')
+
+    @classmethod
+    def fromrepo(cls, repo):
+        comp = compressionengine.fromrepo(repo)
+        level = None
+        if comp == 'zlib':
+            level = repo.ui.configint('storage', 'revlog.zlib.level')
+        elif comp == 'zstd':
+            level = repo.ui.configint('storage', 'revlog.zstd.level')
+        if level is None:
+            return 'default'
+        return bytes(level)
+
+    @classmethod
+    def fromconfig(cls, repo):
+        comp = compressionengine.fromconfig(repo)
+        level = None
+        if comp == 'zlib':
+            level = repo.ui.configint('storage', 'revlog.zlib.level')
+        elif comp == 'zstd':
+            level = repo.ui.configint('storage', 'revlog.zstd.level')
+        if level is None:
+            return 'default'
+        return bytes(level)
+
 def finddeficiencies(repo):
     """returns a list of deficiencies that the repo suffer from"""
     deficiencies = []