[patch] syntax:plain for .hgignore

Matt Mackall mpm at selenic.com
Wed Sep 12 13:49:36 CDT 2007


On Wed, Sep 12, 2007 at 02:27:48PM -0400, Jonathan S. Shapiro wrote:
> On Wed, 2007-09-12 at 13:10 -0500, Matt Mackall wrote:
> > Trouble is, the limiting factor is not the number of lines, but the
> > number of graph nodes in the resulting NFA. So without parsing the
> > regex ourselves, we really don't know whether a given set of lines
> > will overflow the engine until we try.
> 
> I realize this. I'm suggesting that the process of dynamic convergence
> may be more expensive than simply running smaller REs -- even if you
> might hypothetically have obtained larger ones.
> 
> > > But the main thing is the 5000 calls to sre.compile!
> > > 
> > > Is it possible that the culprit is the call to matchfn() around
> > > util.py:467 that is building filematch?
> > 
> > Which? This?
> > 
> >     patmatch = matchfn(pats, '$') or always
> 
> No. The one right below that that builds filematch. Possible that is
> getting called with a very large list? Like maybe the list of all 12,000
> or so of his file names?

Ahh, that disappeared almost 1000 changesets ago, before 0.9.4:

$ hg grep --all filematch
mercurial/util.py:4335:-:    filematch = matchfn(files, '(?:/|$)') or always
mercurial/util.py:4335:-:                         (files and filematch(fn)))),

$ hg tags
tip                             5290:05889b6b1468
0.9.4                           4723:fb4b6d5fe100
0.9.3                           3923:27230c29bfec

-- 
Mathematics is the supreme nostalgia of our time.


More information about the Mercurial-devel mailing list