mercurial/dirstate.py
changeset 4612 86e5500a517e
parent 4611 274c99fc629f
child 4613 17ee7407097f
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()