[PATCH] localrepo: introduce persistent caching of revset revision's branch names

Pierre-Yves David pierre-yves.david at ens-lyon.org
Wed Oct 15 02:04:22 CDT 2014



On 10/14/2014 09:27 PM, Martin von Zweigbergk wrote:
> On Tue, Oct 14, 2014 at 7:58 PM, Mads Kiilerich <mads at kiilerich.com> wrote:
>> On 10/15/2014 02:58 AM, Matt Mackall wrote:
>>>
>>> On Tue, 2014-10-14 at 17:51 -0700, Pierre-Yves David wrote:
>>>>
>>>> On 10/14/2014 05:43 PM, Matt Mackall wrote:
>>>>>
>>>>> On Wed, 2014-10-15 at 02:33 +0200, Mads Kiilerich wrote:
>>>>>>
>>>>>> # HG changeset patch
>>>>>> # User Mads Kiilerich <madski at unity3d.com>
>>>>>> # Date 1413333190 -7200
>>>>>> #      Wed Oct 15 02:33:10 2014 +0200
>>>>>> # Node ID 85189122b49b31dddbcddb7c0925afa019dc4403
>>>>>> # Parent  48c0b101a9de1fdbd638daa858da845cd05a6be7
>>>>>> localrepo: introduce persistent caching of revset revision's branch
>>>>>> names
>>>>>>
>>>>>> It is expensive to create a changectx and extract the branch name. That
>>>>>> shows
>>>>>> up when filtering on branches in revsets.
>
> I'm curious what takes most of this time. My limited understanding
> suggests only the changelog would be read (no manifest revlog, no
> filelog). Correct? Sorry if this is obvious to others. Feel free to
> take the discussion elsewhere if that makes more sense.

There is three main cost centers:

- reading the changelog data for all commit
- decoding the "extra" field to extract the branch name
- creating a changectx (changeset context object) for each entry.

I'm curious about how each of those cost rank compared to each other 
(and If I missed one).

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list