vfs: split "expand" into "realpath"/"expandpath" to apply each separately
authorFUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Mon, 15 Apr 2013 01:22:15 +0900
changeset 18945 e75b72fffdfe
parent 18944 a9c443b3b240
child 18946 3d4f41eaae67
vfs: split "expand" into "realpath"/"expandpath" to apply each separately Before this patch, vfs constructor applies both "util.expandpath()" and "os.path.realpath()" on "base" path, if "expand" is True. This patch splits it into "realpath" and "expandpath", to apply each functions separately: this splitting can allow to use vfs also where one of each is not needed.
mercurial/localrepo.py
mercurial/scmutil.py
--- a/mercurial/localrepo.py	Fri Jan 18 15:54:09 2013 +0100
+++ b/mercurial/localrepo.py	Mon Apr 15 01:22:15 2013 +0900
@@ -153,7 +153,7 @@
         return self.requirements[:]
 
     def __init__(self, baseui, path=None, create=False):
-        self.wvfs = scmutil.vfs(path, expand=True)
+        self.wvfs = scmutil.vfs(path, expandpath=True, realpath=True)
         self.wopener = self.wvfs
         self.root = self.wvfs.base
         self.path = self.wvfs.join(".hg")
--- a/mercurial/scmutil.py	Fri Jan 18 15:54:09 2013 +0100
+++ b/mercurial/scmutil.py	Mon Apr 15 01:22:15 2013 +0900
@@ -263,9 +263,11 @@
     This class is used to hide the details of COW semantics and
     remote file access from higher level code.
     '''
-    def __init__(self, base, audit=True, expand=False):
-        if expand:
-            base = os.path.realpath(util.expandpath(base))
+    def __init__(self, base, audit=True, expandpath=False, realpath=False):
+        if expandpath:
+            base = util.expandpath(base)
+        if realpath:
+            base = os.path.realpath(base)
         self.base = base
         self._setmustaudit(audit)
         self.createmode = None