# HG changeset patch # User FUJIWARA Katsunori # Date 1349714515 -32400 # Node ID 7cb7e17c23b2a123930736591fcae2e9396ffd03 # Parent ffd589d4b785fecc21043417833d2982c802b415 store: invoke "os.stat()" for "createmode" initialization via vfs This just replaces "os.stat()" invocation: refactoring around "self.createmode" and "vfs.createmode" initialization is omitted. This patch also newly adds "stat()" function to "abstractvfs". diff -r ffd589d4b785 -r 7cb7e17c23b2 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 @@ -219,6 +219,9 @@ def mkdir(self, path=None): return os.mkdir(self.join(path)) + def stat(self, path=None): + return os.stat(self.join(path)) + class vfs(abstractvfs): '''Operate files relative to a base directory diff -r ffd589d4b785 -r 7cb7e17c23b2 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 @@ -274,10 +274,10 @@ def _plainhybridencode(f): return _hybridencode(f, False) -def _calcmode(path): +def _calcmode(vfs): try: # files in .hg/ will be created using this mode - mode = os.stat(path).st_mode + mode = vfs.stat().st_mode # avoid some useless chmods if (0777 & ~util.umask) == (0777 & mode): mode = None @@ -293,7 +293,7 @@ def __init__(self, path, vfstype): vfs = vfstype(path) self.path = vfs.base - self.createmode = _calcmode(path) + self.createmode = _calcmode(vfs) vfs.createmode = self.createmode self.vfs = scmutil.filtervfs(vfs, encodedir) self.opener = self.vfs @@ -344,7 +344,7 @@ def __init__(self, path, vfstype): vfs = vfstype(path + '/store') self.path = vfs.base - self.createmode = _calcmode(self.path) + self.createmode = _calcmode(vfs) vfs.createmode = self.createmode self.vfs = scmutil.filtervfs(vfs, encodefilename) self.opener = self.vfs @@ -457,7 +457,7 @@ vfs = vfstype(path + '/store') self.path = vfs.base self.pathsep = self.path + '/' - self.createmode = _calcmode(self.path) + self.createmode = _calcmode(vfs) vfs.createmode = self.createmode fnc = fncache(vfs) self.fncache = fnc