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

Durham Goode durham at fb.com
Thu Sep 15 13:33:43 EDT 2016


On 9/15/16 10:31 AM, Martin von Zweigbergk wrote:
> On Thu, Sep 15, 2016 at 10:29 AM, Durham Goode <durham at fb.com> wrote:
>>
>> 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.
> Please do. I find it easier to see what remains to be done if we
> delete things as we go. I can just delete it in flight. And update the
> comment with s/oldmanifest/repo.manifest/, right?
Yup, feel free to delete in flight.  Otherwise let me know and I'll resend.


More information about the Mercurial-devel mailing list