[PATCH 7 of 8] revset: detect integer list on parsing

Boris FELD boris.feld at octobus.net
Sun Jan 13 02:38:47 EST 2019


On 12/01/2019 05:38, Yuya Nishihara wrote:
> On Fri, 11 Jan 2019 12:29:09 +0100, Boris Feld wrote:
>> # HG changeset patch
>> # User Boris Feld <boris.feld at octobus.net>
>> # Date 1546575973 -3600
>> #      Fri Jan 04 05:26:13 2019 +0100
>> # Node ID 4a56fbdacff33c3985bbb84f2e19ddfbd48ed4fa
>> # Parent  438ea9b8a44c181d62741338c1d16b2031fdda41
>> # EXP-Topic revs-efficiency
>> # Available At https://bitbucket.org/octobus/mercurial-devel/
>> #              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 4a56fbdacff3
>> revset: detect integer list on parsing
>> +            if islist and d == 'd' and arg:
>> +                # special case, we might be able to speedup the list of int case
>> +                safeinputtype = (list, tuple, set, smartset.abstractsmartset)
>> +                if isinstance(arg, safeinputtype):
> Just curious. What's the unsafe type for example? I think 'arg' may be an
> iterator/generator of ints, but which can be safely converted to list/baseset.

Honestly, I'm not sure.

The code around revset is quite complex and I want to focus on having a
first thing working. The overall speedup from this change is so massive
that I rather have a very narrow version of it quickly and expand it later.

>
>> +                    # we don't create a baseset yet, because it come with an
>> +                    # extra cost. If we are going to serialize it we better
>> +                    # skip it.
>> +                    ret.append(('baseset', arg))
>> +                    pos += 1
>> +                    continue
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list