[PATCH 4 of 8] revset: enforce "%d" to be interpreted as literal revision number (API)

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


On 12/01/2019 05:04, Yuya Nishihara wrote:
> On Fri, 11 Jan 2019 12:29:06 +0100, Boris Feld wrote:
>> # HG changeset patch
>> # User Boris Feld <boris.feld at octobus.net>
>> # Date 1547130238 -3600
>> #      Thu Jan 10 15:23:58 2019 +0100
>> # Node ID 38733dd85595782676175141111a42f253efabb6
>> # Parent  427247e84e29c144321d21a825d371458b5d3e1a
>> # EXP-Topic revs-efficiency
>> # Available At https://bitbucket.org/octobus/mercurial-devel/
>> #              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 38733dd85595
>> revset: enforce "%d" to be interpreted as literal revision number (API)
> New behavior looks saner. Please also flag this as (BC). It's exposed as
> revset() template function.
>
>>      %r = revset expression, parenthesized
>> -    %d = int(arg), no quoting
>> +    %d = rev(int(arg)), no quoting
> 'rev(n)' returns an empty set if n is out of range, whereas 'n' aborts.
> Suppose it's pretty much a coding error to pass in an invalid revision to
> repo.revs(), we'll probably want aborts.
>
> Maybe we'll need an internal '_rev()' function?
%ld silently pass on these too, so I would rather have %ld and %d
consistent here (and align on the silence %ld behavior).
>
>>      %s = string(arg), escaped and single-quoted
>>      %b = arg.branch(), escaped and single-quoted
>>      %n = hex(arg), single-quoted
> We might want to map %n to _node() as well, but that isn't required in this
> series.
Yeah, good point. I'll keep this series focused on %d/%ld but will
submit a follow up once this is in.
> _______________________________________________
> 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