Mercurial > hg > mercurial-crew-with-dirclash
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() |