comparison mercurial/dirstate.py @ 4612:86e5500a517e

dirstate: lazify and lambdafy _slash
author Matt Mackall <mpm@selenic.com>
date Mon, 18 Jun 2007 13:24:34 -0500
parents 274c99fc629f
children 17ee7407097f
comparison
equal deleted inserted replaced
4611:274c99fc629f 4612:86e5500a517e
20 def __init__(self, opener, ui, root): 20 def __init__(self, opener, ui, root):
21 self.opener = opener 21 self.opener = opener
22 self.root = root 22 self.root = root
23 self.dirty = 0 23 self.dirty = 0
24 self.ui = ui 24 self.ui = ui
25 self._slash = None
26 25
27 def __getattr__(self, name): 26 def __getattr__(self, name):
28 if name == 'map': 27 if name == 'map':
29 self.read() 28 self.read()
30 return self.map 29 return self.map
54 return self.dirs 53 return self.dirs
55 elif name == '_ignore': 54 elif name == '_ignore':
56 files = [self.wjoin('.hgignore')] + self.ui.hgignorefiles() 55 files = [self.wjoin('.hgignore')] + self.ui.hgignorefiles()
57 self._ignore = ignore.ignore(self.root, files, self.ui.warn) 56 self._ignore = ignore.ignore(self.root, files, self.ui.warn)
58 return self._ignore 57 return self._ignore
58 elif name == '_slash':
59 self._slash = self.ui.configbool('ui', 'slash') and os.sep != '/'
60 return self._slash
59 else: 61 else:
60 raise AttributeError, name 62 raise AttributeError, name
61 63
62 def wjoin(self, f): 64 def wjoin(self, f):
63 return os.path.join(self.root, f) 65 return os.path.join(self.root, f)
77 79
78 def pathto(self, f, cwd=None): 80 def pathto(self, f, cwd=None):
79 if cwd is None: 81 if cwd is None:
80 cwd = self.getcwd() 82 cwd = self.getcwd()
81 path = util.pathto(self.root, cwd, f) 83 path = util.pathto(self.root, cwd, f)
82 if self._slash is None:
83 self._slash = self.ui.configbool('ui', 'slash') and os.sep != '/'
84 if self._slash: 84 if self._slash:
85 path = path.replace(os.sep, '/') 85 return path.replace(os.sep, '/')
86 return path 86 return path
87 87
88 def __del__(self): 88 def __del__(self):
89 if self.dirty: 89 if self.dirty:
90 self.write() 90 self.write()