[PATCH 11 of 19 STABLE] largefiles: examine whether specified pattern is a directory in the context

Greg Ward greg at gerg.ca
Tue Feb 28 01:58:02 UTC 2012


On 27 February 2012, FUJIWARA Katsunori said:
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> # Date 1330335216 -32400
> # Branch stable
> # Node ID 5c5ac9b4a72636ac865f68227d291a48d3c84206
> # Parent  0317d98735a65b478976579bd10e75315ead234d
> largefiles: examine whether specified pattern is a directory in the context
> 
> this patch adds 'inctxdirs()' which uses 'changectx.dirs()' to
> examine 'directory pattern' correctly.
> 
> in fact, original implementation can show status for largefiles
> specified by 'directory pattern' correctly, because 'set.difference()'
> between unknown files returned by 'localrepository.status()' and all
> largefiles is recognized as unknown files finally.
> 
> so this patch reduces cost of 'set.difference()' in 'working' route.
> 
> diff -r 0317d98735a6 -r 5c5ac9b4a726 hgext/largefiles/reposetup.py
> --- a/hgext/largefiles/reposetup.py	Mon Feb 27 18:33:36 2012 +0900
> +++ b/hgext/largefiles/reposetup.py	Mon Feb 27 18:33:36 2012 +0900
> @@ -111,6 +111,9 @@
>                  def inctx(file, ctx):
>                      return file in ctx
>  
> +                def inctxdirs(f, ctx):
> +                    return f in ctx.dirs()
> +
>                  if match is None:
>                      match = match_.always(self.root, self.getcwd())
>  
> @@ -147,7 +150,7 @@
>                      for f in files:
>                          if not lfutil.isstandin(f):
>                              sf = lfutil.standin(f)
> -                            if inctx(sf, ctx2):
> +                            if inctx(sf, ctx2) or inctxdirs(sf, ctx2):

Why does inctxdirs() need to a be a function at all? It's a one-liner,
called once. Inline it! This *is* supposedly a performance
improvement, after all.

Oh yeah: why does inctx() need to be a function? I would inline it too.

And: does this really need to be done on the stable branch? Is it
actually fixing a bug, or just a minor performance tweak? That's
really not clear.

        Greg
-- 
Greg Ward                                http://www.gerg.ca/
"What do you mean -- a European or an African swallow?"



More information about the Mercurial-devel mailing list