# HG changeset patch # User FUJIWARA Katsunori # Date 2013-04-14 16:22:15 # Node ID 3d4f41eaae673d7abec2fac665d2b66e97c32d84 # Parent e75b72fffdfe296a5d1418ecf36baea7079338c6 localrepo: use vfs instead of "os.path.*" in sharedpath checking In the point of view of efficiency, "vfs" instance created in this patch should be passed to and reuse in "store.store()" invocation just after patched code block, because "store" object is initialized by vfs created with "self.sharedpath". eBut to focus just on migration from direct file I/O API accessing to vfs, this patch uses created vfs as temporary one. Refactoring around "store.store()" invocation will be done in the future. diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -209,8 +209,10 @@ class localrepository(object): self.sharedpath = self.path try: - s = os.path.realpath(self.opener.read("sharedpath").rstrip('\n')) - if not os.path.exists(s): + vfs = scmutil.vfs(self.vfs.read("sharedpath").rstrip('\n'), + realpath=True) + s = vfs.base + if not vfs.exists(): raise error.RepoError( _('.hg/sharedpath points to nonexistent directory %s') % s) self.sharedpath = s