narrowspec: use sparse.parseconfig() to parse narrowspec file (BC)
This also make narrow files use 'include' and 'exclude' instead of plural forms
which are 'includes' and 'excludes'.
This is BC because existing narrowspecs have to replace excludes, includes words
with exclude and include i.e. their singular versions.
Differential Revision: https://phab.mercurial-scm.org/D4057
--- a/mercurial/narrowspec.py Fri Aug 03 22:24:58 2018 +0530
+++ b/mercurial/narrowspec.py Fri Aug 03 22:29:04 2018 +0530
@@ -13,6 +13,7 @@
from . import (
error,
match as matchmod,
+ sparse,
util,
)
@@ -107,10 +108,10 @@
return set(normalizepattern(p) for p in pats)
def format(includes, excludes):
- output = '[includes]\n'
+ output = '[include]\n'
for i in sorted(includes - excludes):
output += i + '\n'
- output += '[excludes]\n'
+ output += '[exclude]\n'
for e in sorted(excludes):
output += e + '\n'
return output
@@ -139,7 +140,13 @@
repo.invalidate(clearfilecache=True)
return set(), set()
raise
- return _parsestoredpatterns(spec)
+ # maybe we should care about the profiles returned too
+ includepats, excludepats, profiles = sparse.parseconfig(repo.ui, spec,
+ 'narrow')
+ if profiles:
+ raise error.Abort(_("including other spec files using '%include' is not"
+ " suported in narrowspec"))
+ return includepats, excludepats
def save(repo, includepats, excludepats):
spec = format(includepats, excludepats)
--- a/tests/test-narrow-debugcommands.t Fri Aug 03 22:24:58 2018 +0530
+++ b/tests/test-narrow-debugcommands.t Fri Aug 03 22:29:04 2018 +0530
@@ -2,9 +2,9 @@
$ hg init repo
$ cd repo
$ cat << EOF > .hg/narrowspec
- > [includes]
+ > [include]
> path:foo
- > [excludes]
+ > [exclude]
> EOF
$ echo treemanifest >> .hg/requires
$ echo narrowhg-experimental >> .hg/requires