diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -219,6 +219,9 @@ class abstractvfs(object): def mkdir(self, path=None): return os.mkdir(self.join(path)) + def readdir(self, path=None, stat=None, skip=None): + return osutil.listdir(self.join(path), stat, skip) + def stat(self, path=None): return os.stat(self.join(path)) diff --git a/mercurial/store.py b/mercurial/store.py --- a/mercurial/store.py +++ b/mercurial/store.py @@ -6,7 +6,7 @@ # GNU General Public License version 2 or any later version. from i18n import _ -import osutil, scmutil, util, parsers +import scmutil, util, parsers import os, stat, errno _sha = util.sha1 @@ -311,9 +311,10 @@ class basicstore(object): l = [] if self.rawvfs.isdir(path): visit = [path] + readdir = self.rawvfs.readdir while visit: p = visit.pop() - for f, kind, st in osutil.listdir(p, stat=True): + for f, kind, st in readdir(p, stat=True): fp = p + '/' + f if kind == stat.S_IFREG and f[-2:] in ('.d', '.i'): n = util.pconvert(fp[striplen:])