Mercurial > hg
diff hgext/sparse.py @ 49357:5b7a10ddb42f
sparse: directly inline the `rebuild` wrapping
Core is already aware of sparse, so lets move the handful of line of code that
deal with it in `dirstate.rebuild` for the sake of simplicity.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 11 Jun 2022 00:59:11 +0200 |
parents | a87443d4aec0 |
children | 05da1f1612db |
line wrap: on
line diff
--- a/hgext/sparse.py Sat Jun 11 00:58:41 2022 +0200 +++ b/hgext/sparse.py Sat Jun 11 00:59:11 2022 +0200 @@ -212,24 +212,6 @@ and to prevent modifications to files outside the checkout. """ - # dirstate.rebuild should not add non-matching files - def _rebuild(orig, self, parent, allfiles, changedfiles=None): - matcher = self._sparsematcher - if matcher is not None and not matcher.always(): - allfiles = [f for f in allfiles if matcher(f)] - if changedfiles: - changedfiles = [f for f in changedfiles if matcher(f)] - - if changedfiles is not None: - # In _rebuild, these files will be deleted from the dirstate - # when they are not found to be in allfiles - dirstatefilestoremove = {f for f in self if not matcher(f)} - changedfiles = dirstatefilestoremove.union(changedfiles) - - return orig(self, parent, allfiles, changedfiles) - - extensions.wrapfunction(dirstate.dirstate, b'rebuild', _rebuild) - # Prevent adding files that are outside the sparse checkout editfuncs = [ b'set_tracked',