[PATCH 9 of 9] store: invoke "osutil.listdir()" via vfs

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Mon Oct 8 12:06:19 CDT 2012


# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1349714515 -32400
# Node ID ac075cf7b46384292be10617d6261cd070f07c37
# Parent  e821f4ebf5a1082e750b07964e0ee291272bb458
store: invoke "osutil.listdir()" via vfs

This patch invokes "osutil.listdir()" via vfs object.

The function added newly to "abstractvfs" is named not as "listdir()"
but as "listdir2()": "listdir()" will be used to add the function for
"os.listdir()" invocation, because "os.listdir()" seems to be more
familiar as "listdir()" than "osutil.listdir()".

This patch invokes "osutil.listdir()" via "rawvfs" object to avoid
filename encoding, because the path passed to "osutil.listdir()"
shouldn't be encoded.

This patch also omits importing "osutil" module, because it is no
longer used.

diff -r e821f4ebf5a1 -r ac075cf7b463 mercurial/scmutil.py
--- a/mercurial/scmutil.py	Tue Oct 09 01:41:55 2012 +0900
+++ b/mercurial/scmutil.py	Tue Oct 09 01:41:55 2012 +0900
@@ -210,6 +210,9 @@
     def isdir(self, path=None):
         return os.path.isdir(self.join(path))
 
+    def listdir2(self, path=None, stat=None, skip=None):
+        return osutil.listdir(self.join(path), stat, skip)
+
     def makedir(self, path=None, notindexed=True):
         return util.makedir(self.join(path), notindexed)
 
diff -r e821f4ebf5a1 -r ac075cf7b463 mercurial/store.py
--- a/mercurial/store.py	Tue Oct 09 01:41:55 2012 +0900
+++ b/mercurial/store.py	Tue Oct 09 01:41:55 2012 +0900
@@ -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 @@
         l = []
         if self.rawvfs.isdir(path):
             visit = [path]
+            listdir = self.rawvfs.listdir2
             while visit:
                 p = visit.pop()
-                for f, kind, st in osutil.listdir(p, stat=True):
+                for f, kind, st in listdir(p, stat=True):
                     fp = p + '/' + f
                     if kind == stat.S_IFREG and f[-2:] in ('.d', '.i'):
                         n = util.pconvert(fp[striplen:])


More information about the Mercurial-devel mailing list