diff -r 0db50770f388 -r ad24b581e4d9 mercurial/narrowspec.py --- a/mercurial/narrowspec.py Sat Aug 04 23:15:06 2018 -0700 +++ b/mercurial/narrowspec.py Fri Aug 03 11:09:41 2018 -0700 @@ -13,6 +13,7 @@ from . import ( error, match as matchmod, + repository, sparse, util, ) @@ -129,15 +130,22 @@ spec = format(includepats, excludepats) repo.vfs.write(FILENAME, spec) -def savebackup(vfs, backupname): +def savebackup(repo, backupname): + if repository.NARROW_REQUIREMENT not in repo.requirements: + return + vfs = repo.vfs vfs.tryunlink(backupname) util.copyfile(vfs.join(FILENAME), vfs.join(backupname), hardlink=True) -def restorebackup(vfs, backupname): - vfs.rename(backupname, FILENAME, checkambig=True) +def restorebackup(repo, backupname): + if repository.NARROW_REQUIREMENT not in repo.requirements: + return + repo.vfs.rename(backupname, FILENAME, checkambig=True) -def clearbackup(vfs, backupname): - vfs.unlink(backupname) +def clearbackup(repo, backupname): + if repository.NARROW_REQUIREMENT not in repo.requirements: + return + repo.vfs.unlink(backupname) def restrictpatterns(req_includes, req_excludes, repo_includes, repo_excludes): r""" Restricts the patterns according to repo settings,