Comments
Patch
@@ -634,9 +634,6 @@ coreconfigitem('extdata', '.*',
default=None,
generic=True,
)
-coreconfigitem('format', 'aggressivemergedeltas',
- default=True,
-)
coreconfigitem('format', 'chunkcachesize',
default=None,
)
@@ -927,6 +924,10 @@ coreconfigitem('progress', 'width',
coreconfigitem('push', 'pushvars.server',
default=False,
)
+coreconfigitem('revlog', 'optimize-delta-parent-choice',
+ default=True,
+ # formely an experimental option: format.aggressivemergedeltas
+)
coreconfigitem('server', 'bookmarks-pushkey-compat',
default=True,
)
@@ -1773,6 +1773,20 @@ have a definite end point.
Alias definitions for revsets. See :hg:`help revsets` for details.
+``revlog``
+----------
+
+Control the strategy mercurial use internally to store history. Option in this
+category impact performance and repository size.
+
+``optimize-delta-parent-choice``
+ When storing a merge revision, both parents will be equaly considered as a
+ possible delta base. This result in better delta selection and improved
+ revlog compression. This option is enabled by default.
+
+ Turning this option off can result if large increase of repository size for
+ repository with many merge.
+
``server``
----------
@@ -669,8 +669,8 @@ class localrepository(object):
if manifestcachesize is not None:
self.svfs.options['manifestcachesize'] = manifestcachesize
# experimental config: format.aggressivemergedeltas
- deltabothparents = self.ui.configbool('format',
- 'aggressivemergedeltas')
+ deltabothparents = self.ui.configbool('revlog',
+ 'optimize-delta-parent-choice')
self.svfs.options['deltabothparents'] = deltabothparents
self.svfs.options['lazydeltabase'] = not scmutil.gddeltaconfig(self.ui)
chainspan = self.ui.configbytes('experimental', 'maxdeltachainspan')
@@ -118,7 +118,7 @@ delta coming from the server base delta
2 1 2 0 p1 57 135 161 1.19259 218 57 0.35404
3 1 2 0 p1 57 135 161 1.19259 275 114 0.70807
-Test format.aggressivemergedeltas
+Test revlog.optimize-delta-parent-choice
$ hg init --config format.generaldelta=1 aggressive
$ cd aggressive
@@ -146,7 +146,7 @@ Test format.aggressivemergedeltas
- Verify aggressive merge uses p2 (commit 0) as delta parent
$ hg up -q -C 1
$ hg merge -q 0
- $ hg commit -q -m merge --config format.aggressivemergedeltas=True
+ $ hg commit -q -m merge --config revlog.optimize-delta-parent-choice=yes
$ hg debugdeltachain -m
rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio
0 1 1 -1 base 59 215 59 0.27442 59 0 0.00000