mercurial/util.py
changeset 1479 1a3c6689ef2b
parent 1454 f4250806dbeb
child 1482 4d38b85e60aa
equal deleted inserted replaced
1478:e6dd91a88b57 1479:1a3c6689ef2b
   375                 d = os.path.dirname(f)
   375                 d = os.path.dirname(f)
   376                 if not os.path.isdir(d):
   376                 if not os.path.isdir(d):
   377                     os.makedirs(d)
   377                     os.makedirs(d)
   378             else:
   378             else:
   379                 if nlink > 1:
   379                 if nlink > 1:
   380                     file(f + ".tmp", "wb").write(file(f, "rb").read())
   380                     d, fn = os.path.split(f)
   381                     rename(f+".tmp", f)
   381                     fd, temp = tempfile.mkstemp(prefix=fn, dir=d)
       
   382                     fp = os.fdopen(fd, "wb")
       
   383                     try:
       
   384                         fp.write(file(f, "rb").read())
       
   385                     except:
       
   386                         try: os.unlink(temp)
       
   387                         except: pass
       
   388                         raise
       
   389                     fp.close()
       
   390                     rename(temp, f)
   382 
   391 
   383         return file(f, mode)
   392         return file(f, mode)
   384 
   393 
   385     return o
   394     return o
   386 
   395