Proposed Patch to hgignore

Jakob Krainz jakob at
Thu Mar 6 15:01:09 CST 2008

On Thu 2008-03-06 14:00:19 -0600, Matt Mackall wrote:
> As discussed in the distant past, this feature is very difficult to
> implement in a way that is simultaneously correct and easy to
> understand, nevermind fast. Even though it looks simple on paper.
> Ever wonder why regexes themselves don't have a negation operator?
> It's the sort of deep result that computer science professors tend to
> skim over but could easily fill a book or two.
> -- 
> Mathematics is the supreme nostalgia of our time.

Maybe, but my patch uses only facilities that are already present 
in mercurial (look at the -I and -X options).

in other words, my solution doesnt create a regex that matches 
anything _but_ a pattern, it creates a regex that _matches_ said pattern 
and feeds it to another parameter of the constructor of the matcher object.

have a look at the patch, it happens in mercurial/

the matcher object is defined in mercurial/

it accepts two lists of patterns, and matches (which leads to an ignore) 
if any pattern in the first list matches  and _no_ pattern in the second list.

the second list of patterns does indeed consist of ordinary regular 
expressions, the negation is done on logic level after the matching.

a valid comparison would be the hosts.allow / hosts.deny mechanism 
of wietse venemas tcp_wrapper.
(cf. )

	jakob krainz

More information about the Mercurial-devel mailing list