mercurial/dirstate.py
changeset 49355 0540c1628fd4
parent 49351 97dcd6906e6f
child 49356 a87443d4aec0
equal deleted inserted replaced
49354:216f273b6b30 49355:0540c1628fd4
    25     node,
    25     node,
    26     pathutil,
    26     pathutil,
    27     policy,
    27     policy,
    28     pycompat,
    28     pycompat,
    29     scmutil,
    29     scmutil,
    30     sparse,
       
    31     util,
    30     util,
    32 )
    31 )
    33 
    32 
    34 from .dirstateutils import (
    33 from .dirstateutils import (
    35     timestamp,
    34     timestamp,
   111         self._use_tracked_hint = use_tracked_hint
   110         self._use_tracked_hint = use_tracked_hint
   112         self._nodeconstants = nodeconstants
   111         self._nodeconstants = nodeconstants
   113         self._opener = opener
   112         self._opener = opener
   114         self._validate = validate
   113         self._validate = validate
   115         self._root = root
   114         self._root = root
       
   115         # Either build a sparse-matcher or None if sparse is disabled
   116         self._sparsematchfn = sparsematchfn
   116         self._sparsematchfn = sparsematchfn
   117         # ntpath.join(root, '') of Python 2.7.9 does not add sep if root is
   117         # ntpath.join(root, '') of Python 2.7.9 does not add sep if root is
   118         # UNC path pointing to root share (issue4557)
   118         # UNC path pointing to root share (issue4557)
   119         self._rootdir = pathutil.normasprefix(root)
   119         self._rootdir = pathutil.normasprefix(root)
   120         # True is any internal state may be different
   120         # True is any internal state may be different
   182         """The matcher for the sparse checkout.
   182         """The matcher for the sparse checkout.
   183 
   183 
   184         The working directory may not include every file from a manifest. The
   184         The working directory may not include every file from a manifest. The
   185         matcher obtained by this property will match a path if it is to be
   185         matcher obtained by this property will match a path if it is to be
   186         included in the working directory.
   186         included in the working directory.
   187         """
   187 
       
   188         When sparse if disabled, return None.
       
   189         """
       
   190         if self._sparsematchfn is None:
       
   191             return None
   188         # TODO there is potential to cache this property. For now, the matcher
   192         # TODO there is potential to cache this property. For now, the matcher
   189         # is resolved on every access. (But the called function does use a
   193         # is resolved on every access. (But the called function does use a
   190         # cache to keep the lookup fast.)
   194         # cache to keep the lookup fast.)
   191         return self._sparsematchfn()
   195         return self._sparsematchfn()
   192 
   196 
  1257         elif self._checkcase:
  1261         elif self._checkcase:
  1258             # Case-insensitive filesystems are not handled yet
  1262             # Case-insensitive filesystems are not handled yet
  1259             use_rust = False
  1263             use_rust = False
  1260         elif subrepos:
  1264         elif subrepos:
  1261             use_rust = False
  1265             use_rust = False
  1262         elif sparse.enabled:
  1266         elif self._sparsematchfn is not None:
  1263             use_rust = False
  1267             use_rust = False
  1264         elif not isinstance(match, allowed_matchers):
  1268         elif not isinstance(match, allowed_matchers):
  1265             # Some matchers have yet to be implemented
  1269             # Some matchers have yet to be implemented
  1266             use_rust = False
  1270             use_rust = False
  1267 
  1271