diff -r 87882c8753d4 -r 8d08a28aa63e mercurial/util.py --- a/mercurial/util.py Thu Jun 07 01:42:50 2012 +0200 +++ b/mercurial/util.py Fri Jun 01 15:26:20 2012 -0700 @@ -629,6 +629,30 @@ except OSError: return True +try: + import re2 + _re2 = None +except ImportError: + _re2 = False + +def compilere(pat): + '''Compile a regular expression, using re2 if possible + + For best performance, use only re2-compatible regexp features.''' + global _re2 + if _re2 is None: + try: + re2.compile + _re2 = True + except ImportError: + _re2 = False + if _re2: + try: + return re2.compile(pat) + except re2.error: + pass + return re.compile(pat) + _fspathcache = {} def fspath(name, root): '''Get name in the case stored in the filesystem