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

Yuya Nishihara yuya at tcha.org
Sun Jan 13 04:12:10 EST 2019


On Sun, 13 Jan 2019 08:37:47 +0100, Boris FELD wrote:
> 
> 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).

Indeed. I never thought %ld would behave in such way. Consistent behavior
should be better.


More information about the Mercurial-devel mailing list