[PATCH 2 of 3 v4 sparse-ext] match: expose some data and functionality to other modules

Augie Fackler raf at durin42.com
Fri Aug 4 17:22:16 EDT 2017


On Fri, Aug 04, 2017 at 05:45:58AM -0700, Kostia Balytskyi wrote:
> # HG changeset patch
> # User Kostia Balytskyi <ikostia at fb.com>
> # Date 1501714137 25200
> #      Wed Aug 02 15:48:57 2017 -0700
> # Node ID c0136292871d85675ccb9f386f4ae1913da4eb53
> # Parent  d24d6711aa2a5397d52f46ccffa64c2a638c088b
> match: expose some data and functionality to other modules

I've taken patches 1 and 2. Reflecting on 3 now.

>
> This patch makes sure that other modules can check whether patterns
> are CWD-relative.
>
> diff --git a/mercurial/match.py b/mercurial/match.py
> --- a/mercurial/match.py
> +++ b/mercurial/match.py
> @@ -18,6 +18,11 @@ from . import (
>      util,
>  )
>
> +allpatternkinds = ('re', 'glob', 'path', 'relglob', 'relpath', 'relre',
> +                   'listfile', 'listfile0', 'set', 'include', 'subinclude',
> +                   'rootfilesin')
> +cwdrelativepatternkinds = ('relpath', 'glob')
> +
>  propertycache = util.propertycache
>
>  def _rematcher(regex):
> @@ -190,7 +195,7 @@ def _donormalize(patterns, default, root
>      normalized and rooted patterns and with listfiles expanded.'''
>      kindpats = []
>      for kind, pat in [_patsplit(p, default) for p in patterns]:
> -        if kind in ('glob', 'relpath'):
> +        if kind in cwdrelativepatternkinds:
>              pat = pathutil.canonpath(root, cwd, pat, auditor)
>          elif kind in ('relglob', 'path', 'rootfilesin'):
>              pat = util.normpath(pat)
> @@ -691,9 +696,7 @@ def _patsplit(pattern, default):
>      pattern."""
>      if ':' in pattern:
>          kind, pat = pattern.split(':', 1)
> -        if kind in ('re', 'glob', 'path', 'relglob', 'relpath', 'relre',
> -                    'listfile', 'listfile0', 'set', 'include', 'subinclude',
> -                    'rootfilesin'):
> +        if kind in allpatternkinds:
>              return kind, pat
>      return default, pattern
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list