equal
deleted
inserted
replaced
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 |