mercurial/dirstate.py
changeset 4612 17ee7407097f
parent 4611 86e5500a517e
child 4613 3a645af7fb76
equal deleted inserted replaced
4611:86e5500a517e 4612:17ee7407097f
    18 class dirstate(object):
    18 class dirstate(object):
    19 
    19 
    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 
    25 
    26     def __getattr__(self, name):
    26     def __getattr__(self, name):
    27         if name == 'map':
    27         if name == 'map':
    28             self.read()
    28             self.read()
    84         if self._slash:
    84         if self._slash:
    85             return 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         self.write()
    90             self.write()
       
    91 
    90 
    92     def __getitem__(self, key):
    91     def __getitem__(self, key):
    93         return self.map[key]
    92         return self.map[key]
    94 
    93 
    95     def __contains__(self, key):
    94     def __contains__(self, key):
   100 
    99 
   101     def branch(self):
   100     def branch(self):
   102         return self._branch
   101         return self._branch
   103 
   102 
   104     def markdirty(self):
   103     def markdirty(self):
   105         if not self.dirty:
   104         self._dirty = 1
   106             self.dirty = 1
       
   107 
   105 
   108     def setparents(self, p1, p2=nullid):
   106     def setparents(self, p1, p2=nullid):
   109         self.markdirty()
   107         self.markdirty()
   110         self.pl = p1, p2
   108         self.pl = p1, p2
   111 
   109 
   238                 self.map[f] = ('n', 0666, -1, 0)
   236                 self.map[f] = ('n', 0666, -1, 0)
   239         self.pl = (parent, nullid)
   237         self.pl = (parent, nullid)
   240         self.markdirty()
   238         self.markdirty()
   241 
   239 
   242     def write(self):
   240     def write(self):
   243         if not self.dirty:
   241         if not self._dirty:
   244             return
   242             return
   245         cs = cStringIO.StringIO()
   243         cs = cStringIO.StringIO()
   246         cs.write("".join(self.pl))
   244         cs.write("".join(self.pl))
   247         for f, e in self.map.iteritems():
   245         for f, e in self.map.iteritems():
   248             c = self.copied(f)
   246             c = self.copied(f)
   252             cs.write(e)
   250             cs.write(e)
   253             cs.write(f)
   251             cs.write(f)
   254         st = self.opener("dirstate", "w", atomictemp=True)
   252         st = self.opener("dirstate", "w", atomictemp=True)
   255         st.write(cs.getvalue())
   253         st.write(cs.getvalue())
   256         st.rename()
   254         st.rename()
   257         self.dirty = 0
   255         self._dirty = 0
   258 
   256 
   259     def filterfiles(self, files):
   257     def filterfiles(self, files):
   260         ret = {}
   258         ret = {}
   261         unknown = []
   259         unknown = []
   262 
   260