# HG changeset patch # User Gregory Szorc # Date 1499369164 25200 # Node ID ca4b78eb11e7a67600e85784df4da2655351b6d2 # Parent f7a106b3f089859c7b49b49ebc14d119c402b015 sparse: move active profiles function into core Also includes some light formatting changes. diff -r f7a106b3f089 -r ca4b78eb11e7 hgext/sparse.py --- a/hgext/sparse.py Thu Jul 06 12:15:14 2017 -0700 +++ b/hgext/sparse.py Thu Jul 06 12:26:04 2017 -0700 @@ -213,7 +213,7 @@ for file, flags, msg in actions: dirstate.normal(file) - profiles = repo.getactiveprofiles() + profiles = sparse.activeprofiles(repo) changedprofiles = profiles & files # If an active profile changed during the update, refresh the checkout. # Don't do this during a branch merge, since all incoming changes should @@ -517,17 +517,6 @@ return result - def getactiveprofiles(self): - revs = [self.changelog.rev(node) for node in - self.dirstate.parents() if node != nullid] - - activeprofiles = set() - for rev in revs: - _, _, profiles = sparse.patternsforrev(self, rev) - activeprofiles.update(profiles) - - return activeprofiles - def writesparseconfig(self, include, exclude, profiles): raw = '%s[include]\n%s\n[exclude]\n%s\n' % ( ''.join(['%%include %s\n' % p for p in sorted(profiles)]), diff -r f7a106b3f089 -r ca4b78eb11e7 mercurial/sparse.py --- a/mercurial/sparse.py Thu Jul 06 12:15:14 2017 -0700 +++ b/mercurial/sparse.py Thu Jul 06 12:26:04 2017 -0700 @@ -8,6 +8,7 @@ from __future__ import absolute_import from .i18n import _ +from .node import nullid from . import ( error, ) @@ -115,3 +116,13 @@ includes.add('.hg*') return includes, excludes, profiles + +def activeprofiles(repo): + revs = [repo.changelog.rev(node) for node in + repo.dirstate.parents() if node != nullid] + + profiles = set() + for rev in revs: + profiles.update(patternsforrev(repo, rev)[2]) + + return profiles