mercurial/dirstate.py
changeset 4341 f4a1eac52d43
parent 4256 fe0fe0b4d73b
parent 4330 1b9fc3f48861
child 4371 abeb3edb2b4e
equal deleted inserted replaced
4325:aa26759c6fb3 4341:f4a1eac52d43
   312         self.markdirty()
   312         self.markdirty()
   313 
   313 
   314     def write(self):
   314     def write(self):
   315         if not self.dirty:
   315         if not self.dirty:
   316             return
   316             return
   317         st = self.opener("dirstate", "w", atomic=True)
   317         st = self.opener("dirstate", "w", atomictemp=True)
   318         st.write("".join(self.pl))
   318         st.write("".join(self.pl))
   319         for f, e in self.map.items():
   319         for f, e in self.map.items():
   320             c = self.copied(f)
   320             c = self.copied(f)
   321             if c:
   321             if c:
   322                 f = f + "\0" + c
   322                 f = f + "\0" + c
   323             e = struct.pack(self.format, e[0], e[1], e[2], e[3], len(f))
   323             e = struct.pack(self.format, e[0], e[1], e[2], e[3], len(f))
   324             st.write(e + f)
   324             st.write(e + f)
       
   325         st.rename()
   325         self.dirty = 0
   326         self.dirty = 0
   326 
   327 
   327     def filterfiles(self, files):
   328     def filterfiles(self, files):
   328         ret = {}
   329         ret = {}
   329         unknown = []
   330         unknown = []