[PATCH 3 of 4] dirstate: skip step 3 in walk if nothing new will match

Benoit Boissinot benoit.boissinot at ens-lyon.org
Tue May 19 08:33:00 CDT 2009


On Tue, May 19, 2009 at 07:27:37AM +0000, Simon Heimberg wrote:
> # HG changeset patch
> # User Simon Heimberg <simohe at besonet.ch>
> # Date 1242323666 -7200
> # Node ID 19a134f738f5ac0720bc08fbe6507f4eb4769fd9
> # Parent  4095d02302b74f9ce2c90fe283d84ad31ce2da83
> dirstate: skip step 3 in walk if nothing new will match
> 
> nothing will ever match on match.never
> nothing new will match on match.exact (all found in step 1)
> nothing new will match on match.match when
>   there is no pattern and
>   there is no direcory in pats
> 
> diff -r 4095d02302b7 -r 19a134f738f5 mercurial/dirstate.py
> --- a/mercurial/dirstate.py	Don Mai 14 10:50:45 2009 +0200
> +++ b/mercurial/dirstate.py	Don Mai 14 19:54:26 2009 +0200
> @@ -460,6 +460,11 @@
>          join = self._join
>          work = []
>          wadd = work.append
> +        dostep3 = match.anypats() or match.__class__.__name__ == 'always'
> +        nomatches = not dostep3 and match.__class__.__name__ in 'never exact'.split()

would isinstance() work here ?

regards,

Benoit

-- 
:wq


More information about the Mercurial-devel mailing list