# HG changeset patch # User Boris Feld # Date 1498961184 -7200 # Node ID 34f15db81cf0d17d00c27b699f4ab01f4af491b0 # Parent 9199548525fc6fd3ac97969f94c570776a5cd001 vfs: extract the audit path logic into a submethod This will make it possible to apply it in more cases. diff -r 9199548525fc -r 34f15db81cf0 mercurial/localrepo.py --- a/mercurial/localrepo.py Thu Nov 22 20:01:28 2018 +0100 +++ b/mercurial/localrepo.py Sun Jul 02 04:06:24 2017 +0200 @@ -1030,12 +1030,12 @@ path = path[len(repo.path) + 1:] if path.startswith('cache/'): msg = 'accessing cache with vfs instead of cachevfs: "%s"' - repo.ui.develwarn(msg % path, stacklevel=2, config="cache-vfs") + repo.ui.develwarn(msg % path, stacklevel=3, config="cache-vfs") if path.startswith('journal.') or path.startswith('undo.'): # journal is covered by 'lock' if repo._currentlock(repo._lockref) is None: repo.ui.develwarn('write with no lock: "%s"' % path, - stacklevel=2, config='check-locks') + stacklevel=3, config='check-locks') elif repo._currentlock(repo._wlockref) is None: # rest of vfs files are covered by 'wlock' # @@ -1044,7 +1044,7 @@ if path.startswith(prefix): return repo.ui.develwarn('write with no wlock: "%s"' % path, - stacklevel=2, config='check-locks') + stacklevel=3, config='check-locks') return ret return checkvfs @@ -1063,7 +1063,7 @@ path = path[len(repo.sharedpath) + 1:] if repo._currentlock(repo._lockref) is None: repo.ui.develwarn('write with no lock: "%s"' % path, - stacklevel=3) + stacklevel=4) return ret return checksvfs diff -r 9199548525fc -r 34f15db81cf0 mercurial/vfs.py --- a/mercurial/vfs.py Thu Nov 22 20:01:28 2018 +0100 +++ b/mercurial/vfs.py Sun Jul 02 04:06:24 2017 +0200 @@ -337,6 +337,13 @@ return os.chmod(name, self.createmode & 0o666) + def _auditpath(self, path, mode): + if self._audit: + r = util.checkosfilename(path) + if r: + raise error.Abort("%s: %r" % (r, path)) + self.audit(path, mode=mode) + def __call__(self, path, mode="r", atomictemp=False, notindexed=False, backgroundclose=False, checkambig=False, auditpath=True): '''Open ``path`` file, which is relative to vfs root. @@ -369,11 +376,7 @@ cases (see also issue5418 and issue5584 for detail). ''' if auditpath: - if self._audit: - r = util.checkosfilename(path) - if r: - raise error.Abort("%s: %r" % (r, path)) - self.audit(path, mode=mode) + self._auditpath(path, mode) f = self.join(path) if "b" not in mode: