[Differential] [Request, 18 lines] D95: sparse: use set for capturing profiles
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Sat Jul 15 21:12:02 UTC 2017
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
Order doesn't need to be preserved. A set is acceptable.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D95
AFFECTED FILES
mercurial/sparse.py
CHANGE DETAILS
Index: mercurial/sparse.py
===================================================================
--- mercurial/sparse.py
+++ mercurial/sparse.py
@@ -34,16 +34,16 @@
includes = set()
excludes = set()
current = includes
- profiles = []
+ profiles = set()
for line in raw.split('\n'):
line = line.strip()
if not line or line.startswith('#'):
# empty or comment line, skip
continue
elif line.startswith('%include '):
line = line[9:].strip()
if line:
- profiles.append(line)
+ profiles.add(line)
elif line == '[include]':
if current != includes:
# TODO pass filename into this API so we can report it.
@@ -76,11 +76,11 @@
"""
# Feature isn't enabled. No-op.
if not enabled:
- return set(), set(), []
+ return set(), set(), set()
raw = repo.vfs.tryread('sparse')
if not raw:
- return set(), set(), []
+ return set(), set(), set()
if rev is None:
raise error.Abort(_('cannot parse sparse patterns from working '
@@ -115,8 +115,7 @@
pincludes, pexcludes, subprofs = parseconfig(repo.ui, raw)
includes.update(pincludes)
excludes.update(pexcludes)
- for subprofile in subprofs:
- profiles.append(subprofile)
+ profiles.update(subprofs)
profiles = visited
@@ -142,7 +141,7 @@
includes, excludes, profiles = patternsforrev(repo, rev)
allincludes |= includes
allexcludes |= excludes
- allprofiles |= set(profiles)
+ allprofiles |= profiles
return allincludes, allexcludes, allprofiles
@@ -504,7 +503,7 @@
profiles = patternsforrev(repo, ctx.rev())[2]
# profiles will only have data if sparse is enabled.
- if set(profiles) & set(ctx.files()):
+ if profiles & set(ctx.files()):
origstatus = repo.status()
origsparsematch = matcher(repo)
refreshwdir(repo, origstatus, origsparsematch, force=True)
@@ -555,7 +554,7 @@
oldsize = len(includes) + len(excludes) + len(profiles)
includes.update(iincludes - aincludes)
excludes.update(iexcludes - aexcludes)
- profiles.update(set(iprofiles) - aprofiles)
+ profiles.update(iprofiles - aprofiles)
if len(includes) + len(excludes) + len(profiles) > oldsize:
changed = True
@@ -604,7 +603,6 @@
raw = repo.vfs.tryread('sparse')
oldinclude, oldexclude, oldprofiles = parseconfig(repo.ui, raw)
- oldprofiles = set(oldprofiles)
if reset:
newinclude = set()
EMAIL PREFERENCES
https://phab.mercurial-scm.org/settings/panel/emailpreferences/
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list