[PATCH 1 of 8] manifest: move treeinmem onto manifestlog

Durham Goode durham at fb.com
Thu Sep 15 13:29:44 EDT 2016



On 9/14/16 10:58 PM, Martin von Zweigbergk wrote:
> On Wed, Sep 14, 2016 at 4:04 PM, Durham Goode <durham at fb.com> wrote:
>> # HG changeset patch
>> # User Durham Goode <durham at fb.com>
>> # Date 1473893509 25200
>> #      Wed Sep 14 15:51:49 2016 -0700
>> # Node ID a68f73ff397c439410395363049a0679a847b425
>> # Parent  459cbb3804144a4cabb6622b6d66616cadd35ade
>> manifest: move treeinmem onto manifestlog
>>
>> A previous patched moved all the serialization related options onto
>> manifestrevlog (since it is responsible for serialization). Let's move the
>> treeinmem option on manifestlog, since it is responsible for materialization
>> decisions. This reduces the number of dependencies manifestlog has on the old
>> manifest type as well, so we can eventually make them completely independent of
>> each other.
>>
>> diff --git a/mercurial/manifest.py b/mercurial/manifest.py
>> --- a/mercurial/manifest.py
>> +++ b/mercurial/manifest.py
>> @@ -957,6 +957,13 @@ class manifestlog(object):
>>       def __init__(self, opener, repo):
>>           self._repo = repo
>>
>> +        usetreemanifest = False
>> +
>> +        opts = getattr(opener, 'options', None)
>> +        if opts is not None:
>> +            usetreemanifest = opts.get('treemanifest', usetreemanifest)
>> +        self._treeinmem = usetreemanifest
>> +
>>           # We'll separate this into it's own cache once oldmanifest is no longer
>>           # used
>>           self._mancache = repo.manifest._mancache
>> @@ -984,7 +991,7 @@ class manifestlog(object):
>>                   isinstance(cachemf, treemanifestctx)):
>>                   return cachemf
>>
>> -        if self._oldmanifest._treeinmem:
> Can _oldmanifest be removed in this patch?
Yea, I guess we could.  It gets removed later down the series anyway 
(when we get rid of the _revlog property).  I can delete it here if you 
want though.


More information about the Mercurial-devel mailing list