[PATCH 2 of 2 mainline] format: introduce 'format.generaldelta=accept'
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sun Nov 8 10:57:05 CST 2015
On 11/08/2015 07:22 AM, Yuya Nishihara wrote:
> On Fri, 06 Nov 2015 10:47:16 -0500, Pierre-Yves David wrote:
>> # HG changeset patch
>> # User Pierre-Yves David <pierre-yves.david at fb.com>
>> # Date 1446479952 0
>> # Mon Nov 02 15:59:12 2015 +0000
>> # Node ID 2176eee3dd6c33a51fab5cf4b4e0ac4fba034f12
>> # Parent 69c64edb25dd96a23564db5b23b8b432b343ec88
>> # EXP-Topic generaldelta
>> # Available At http://hg.netv6.net/marmoute-wip/mercurial/
>> # hg pull http://hg.netv6.net/marmoute-wip/mercurial/ -r 2176eee3dd6c
>> format: introduce 'format.generaldelta=accept'
>>
>> This value will make repository created as general delta by default but will not
>> make Mercurial aggressively recompute delta for all incoming bundle. Instead,
>> the delta contained in the bundle will be used. This will allow use to start having
>> general delta repository created everywhere without triggering massive
>> re-computation cost for all new clients cloning from old server.
>>
>> diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
>> --- a/mercurial/localrepo.py
>> +++ b/mercurial/localrepo.py
>> @@ -256,11 +256,11 @@ class localrepository(object):
>> self.vfs.append(
>> "00changelog.i",
>> '\0\0\0\2' # represents revlogv2
>> ' dummy changelog to prevent using the old repo layout'
>> )
>> - if scmutil.gdconfig(self.ui):
>> + if scmutil.gdconfig(self.ui)[0]:
>> self.requirements.add("generaldelta")
>> if self.ui.configbool('experimental', 'treemanifest', False):
>> self.requirements.add("treemanifest")
>> if self.ui.configbool('experimental', 'manifestv2', False):
>> self.requirements.add("manifestv2")
>> @@ -356,10 +356,11 @@ class localrepository(object):
>> self.svfs.options['manifestcachesize'] = manifestcachesize
>> # experimental config: format.aggressivemergedeltas
>> aggressivemergedeltas = self.ui.configbool('format',
>> 'aggressivemergedeltas', False)
>> self.svfs.options['aggressivemergedeltas'] = aggressivemergedeltas
>> + self.svfs.options['lazydeltabase'] = scmutil.gdconfig(self.ui)[1]
>>
>> def _writerequirements(self):
>> scmutil.writerequires(self.vfs, self.requirements)
>>
>> def _checknested(self, path):
>> diff --git a/mercurial/revlog.py b/mercurial/revlog.py
>> --- a/mercurial/revlog.py
>> +++ b/mercurial/revlog.py
>> @@ -228,10 +228,12 @@ class revlog(object):
>> self._chunkcachesize = opts['chunkcachesize']
>> if 'maxchainlen' in opts:
>> self._maxchainlen = opts['maxchainlen']
>> if 'aggressivemergedeltas' in opts:
>> self._aggressivemergedeltas = opts['aggressivemergedeltas']
>> + if 'lazydeltabase' in opts:
>> + self._lazydeltabase = bool(opts['lazydeltabase'])
>
> Just nitpicking, _lazydeltabase isn't initialized if no opts['lazydeltabase']
> specified.
Nice catch, V2 coming.
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list