comparison mercurial/localrepo.py @ 17161:be016e96117a

localrepo: use file API via vfs while ensuring repository directory As a part of migration to vfs, this patch invokes some file API indirectly via vfs, while ensuring repository directory in the constructor of "localrepository" class. New file API are added to "scmutil.abstractopener" class, because they are also used via other derived classes than "scmutil.opener". But "join()" is not yet defined other than "scmutil.opener" class, because it should not be used via other opener classes yet.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Fri, 06 Jul 2012 18:45:27 +0900
parents 22b9b1d2f5d4
children c18ecebed3f1
comparison
equal deleted inserted replaced
17160:22b9b1d2f5d4 17161:be016e96117a
56 self.ui.readconfig(self.join("hgrc"), self.root) 56 self.ui.readconfig(self.join("hgrc"), self.root)
57 extensions.loadall(self.ui) 57 extensions.loadall(self.ui)
58 except IOError: 58 except IOError:
59 pass 59 pass
60 60
61 if not os.path.isdir(self.path): 61 if not self.vfs.isdir():
62 if create: 62 if create:
63 if not os.path.exists(self.root): 63 if not self.wvfs.exists():
64 util.makedirs(self.root) 64 self.wvfs.makedirs()
65 util.makedir(self.path, notindexed=True) 65 self.vfs.makedir(notindexed=True)
66 requirements = self._baserequirements(create) 66 requirements = self._baserequirements(create)
67 if self.ui.configbool('format', 'usestore', True): 67 if self.ui.configbool('format', 'usestore', True):
68 os.mkdir(os.path.join(self.path, "store")) 68 self.vfs.mkdir("store")
69 requirements.append("store") 69 requirements.append("store")
70 if self.ui.configbool('format', 'usefncache', True): 70 if self.ui.configbool('format', 'usefncache', True):
71 requirements.append("fncache") 71 requirements.append("fncache")
72 if self.ui.configbool('format', 'dotencode', True): 72 if self.ui.configbool('format', 'dotencode', True):
73 requirements.append('dotencode') 73 requirements.append('dotencode')