[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