mercurial/dirstate.py
changeset 1755 a8f7791e3680
parent 1749 d457fec76ab0
child 1794 98b6c1cad58b
equal deleted inserted replaced
1754:fdfe89a3962d 1755:a8f7791e3680
   195                 self.ui.warn(_("not in dirstate: %s!\n") % f)
   195                 self.ui.warn(_("not in dirstate: %s!\n") % f)
   196                 pass
   196                 pass
   197 
   197 
   198     def clear(self):
   198     def clear(self):
   199         self.map = {}
   199         self.map = {}
       
   200         self.copies = {}
       
   201         self.markdirty()
       
   202 
       
   203     def rebuild(self, parent, files):
       
   204         self.clear()
       
   205         umask = os.umask(0)
       
   206         os.umask(umask)
       
   207         for f, mode in files:
       
   208             if mode:
       
   209                 self.map[f] = ('n', ~umask, -1, 0)
       
   210             else:
       
   211                 self.map[f] = ('n', ~umask & 0666, -1, 0)
       
   212         self.pl = (parent, nullid)
   200         self.markdirty()
   213         self.markdirty()
   201 
   214 
   202     def write(self):
   215     def write(self):
   203         st = self.opener("dirstate", "w", atomic=True)
   216         st = self.opener("dirstate", "w", atomic=True)
   204         st.write("".join(self.pl))
   217         st.write("".join(self.pl))
   404                     continue
   417                     continue
   405             # check the common case first
   418             # check the common case first
   406             if type_ == 'n':
   419             if type_ == 'n':
   407                 if not st:
   420                 if not st:
   408                     st = os.stat(fn)
   421                     st = os.stat(fn)
   409                 if size != st.st_size or (mode ^ st.st_mode) & 0100:
   422                 if size >= 0 and (size != st.st_size
       
   423                                   or (mode ^ st.st_mode) & 0100):
   410                     modified.append(fn)
   424                     modified.append(fn)
   411                 elif time != st.st_mtime:
   425                 elif time != st.st_mtime:
   412                     lookup.append(fn)
   426                     lookup.append(fn)
   413             elif type_ == 'm':
   427             elif type_ == 'm':
   414                 modified.append(fn)
   428                 modified.append(fn)