[PATCH 2 of 4 V3] revset: disable compat with legacy compat for internal revsets API (API)

Feld Boris lothiraldan at gmail.com
Fri Apr 13 08:53:57 EDT 2018


On 11/04/2018 17:23, Yuya Nishihara wrote:
> On Wed, 11 Apr 2018 11:50:15 +0200, Boris Feld wrote:
>> # HG changeset patch
>> # User Boris Feld <boris.feld at octobus.net>
>> # Date 1520412972 18000
>> #      Wed Mar 07 03:56:12 2018 -0500
>> # Node ID 00090d394d4e0a7c2637f161493353530dcf739d
>> # Parent  5c1a0d784a26d4e8659dcec80503c8764432a303
>> # EXP-Topic noname
>> # Available At https://bitbucket.org/octobus/mercurial-devel/
>> #              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 00090d394d4e
>> revset: disable compat with legacy compat for internal revsets API (API)
>>
>> In theory, there should be no user input going directly to "repo.revs" and
>> "repo.set" so we can adjust the behavior in all cases. Avoiding name lookup
>> during revsets parsing provide important speedup when some namespaces are slow
>> to load.
>>
>> diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
>> --- a/mercurial/localrepo.py
>> +++ b/mercurial/localrepo.py
>> @@ -832,7 +832,7 @@ class localrepository(object):
>>           that contains integer revisions.
>>           '''
>>           expr = revsetlang.formatspec(expr, *args)
>> -        m = revset.match(None, expr)
>> +        m = revset.match(None, expr, legacycompat=False)
>>           return m(self)
>> -def matchany(ui, specs, repo=None, localalias=None):
>> +def matchany(ui, specs, repo=None, localalias=None, legacycompat=True):
>>       """Create a matcher that will include any revisions matching one of the
>>       given specs
>>   
>> @@ -2191,7 +2191,7 @@ def matchany(ui, specs, repo=None, local
>>       if not all(specs):
>>           raise error.ParseError(_("empty query"))
>>       lookup = None
>> -    if repo:
>> +    if repo and legacycompat:
>>           lookup = lookupfn(repo)
> So legacycompat=False is identical to repo=None?

Almost, there is also the `posttreebuilthook` hook that takes repo as a 
parameter.

It is (was?) used at least by the directaccess extension.
> _______________________________________________
> 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