diff -r 160efb559f67 -r 4695f1829045 mercurial/sparse.py --- a/mercurial/sparse.py Fri Jul 07 11:51:10 2017 -0700 +++ b/mercurial/sparse.py Sat Jul 08 13:19:38 2017 -0700 @@ -494,3 +494,21 @@ refreshwdir(repo, origstatus, origsparsematch, force=True) prunetemporaryincludes(repo) + +def clearrules(repo, force=False): + """Clears include/exclude rules from the sparse config. + + The remaining sparse config only has profiles, if defined. The working + directory is refreshed, as needed. + """ + with repo.wlock(): + raw = repo.vfs.tryread('sparse') + includes, excludes, profiles = parseconfig(repo.ui, raw) + + if not includes and not excludes: + return + + oldstatus = repo.status() + oldmatch = matcher(repo) + writeconfig(repo, set(), set(), profiles) + refreshwdir(repo, oldstatus, oldmatch, force=force)