[PATCH STABLE] revset: have rev() drop out-of-range or filtered rev explicitly (issue4396)

Yuya Nishihara yuya at tcha.org
Thu Oct 23 07:00:12 CDT 2014


On Mon, 20 Oct 2014 09:46:15 -0700, Pierre-Yves David wrote:
> On 10/20/2014 06:02 AM, Yuya Nishihara wrote:
> > On Mon, 20 Oct 2014 03:06:01 -0700, Pierre-Yves David wrote:
> >> I've changed it to::
> >>
> >>       if l not in repo.changelog:
> >>
> >> And pushed the result to the clowncopter.
> >
> > Isn't it slower than "l in repo" for large number?
> > revlog doesn't have  __contains__().
> >
> > revset #0: rev(210000)
> > 0) wall 0.026161 comb 0.030000 user 0.030000 sys 0.000000 (best of 107)
> > 1) wall 0.000045 comb 0.000000 user 0.000000 sys 0.000000 (best of 58973)
> > 2) wall 0.000063 comb 0.000000 user 0.000000 sys 0.000000 (best of 42704)
> > 3) wall 0.002724 comb 0.000000 user 0.000000 sys 0.000000 (best of 1060)
> 
> gasp! I did not realised that. I switched it to `l not in 
> fullreposet(repo)` in a hurry. We should probably fix changelog 
> containment in 3.3. Thanks alot for double checking this, should not 
> have tried to get thing "better" (but I happy to have found a bug).

Maybe new patch isn't pushed to clowncopter yet?
The slow version was queued:

http://selenic.com/repo/hg/rev/ba89f7b542c9

Regards,


More information about the Mercurial-devel mailing list