sparse: move active profiles function into core
Also includes some light formatting changes.
--- 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)]),
--- 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