diff mercurial/localrepo.py @ 41818:f6eff9e4de80

storage: introduce a `revlog.reuse-external-delta-parent` config As pointed in c59987ab96b4, we had no simple way to get a client to not blindly reuse the delta parent from a bundle. Instead one had to rely on a side effect of the deprecated `format.generaldelta` configuration. We introduce an explicit `revlog.reuse-external-delta-parent` configuration option (default to True) to control this behavior. If the option is not set, `format.generaldelta` still control this behavior. To test the new option, we convert a couple of place where `generaldelta` have been used for its side effects.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 27 Feb 2019 10:49:25 +0100
parents 2e2076c8c25f
children 688fc33e105d
line wrap: on
line diff
--- a/mercurial/localrepo.py	Sat Mar 02 09:41:17 2019 +0900
+++ b/mercurial/localrepo.py	Wed Feb 27 10:49:25 2019 +0100
@@ -752,7 +752,11 @@
                                      b'revlog.optimize-delta-parent-choice')
     options[b'deltabothparents'] = deltabothparents
 
-    options[b'lazydeltabase'] = not scmutil.gddeltaconfig(ui)
+    lazydeltabase = ui.configbool(b'storage',
+                                  b'revlog.reuse-external-delta-parent')
+    if lazydeltabase is None:
+        lazydeltabase = not scmutil.gddeltaconfig(ui)
+    options[b'lazydeltabase'] = lazydeltabase
 
     chainspan = ui.configbytes(b'experimental', b'maxdeltachainspan')
     if 0 <= chainspan: