From 82797a75d4390d3fcdba180a6794e5da2d31590b Mon Sep 17 00:00:00 2001 From: Gregory Szorc Date: Thu, 6 Jul 2017 12:26:04 -0700 Subject: [PATCH] sparse: move active profiles function into core Also includes some light formatting changes. --- hgext/sparse.py | 13 +------------ mercurial/sparse.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/hgext/sparse.py b/hgext/sparse.py index 3f22e5b2ea..930bc4644a 100644 --- a/hgext/sparse.py +++ b/hgext/sparse.py @@ -213,7 +213,7 @@ def _setupupdates(ui): 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 @@ def _wraprepo(ui, repo): 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 --git a/mercurial/sparse.py b/mercurial/sparse.py index 00ecfc3df7..1208028aad 100644 --- a/mercurial/sparse.py +++ b/mercurial/sparse.py @@ -8,6 +8,7 @@ from __future__ import absolute_import from .i18n import _ +from .node import nullid from . import ( error, ) @@ -115,3 +116,13 @@ def patternsforrev(repo, rev): 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