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.
--- 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