mercurial/util.py
changeset 8420 f53bc3e37655
parent 8419 94e07bb8e5dd
child 8516 8e2c0ab94432
equal deleted inserted replaced
8419:94e07bb8e5dd 8420:f53bc3e37655
   969     file.  When rename is called, the copy is renamed to the original
   969     file.  When rename is called, the copy is renamed to the original
   970     name, making the changes visible.
   970     name, making the changes visible.
   971     """
   971     """
   972     def __init__(self, name, mode, createmode):
   972     def __init__(self, name, mode, createmode):
   973         self.__name = name
   973         self.__name = name
       
   974         self._fp = None
   974         self.temp = mktempcopy(name, emptyok=('w' in mode),
   975         self.temp = mktempcopy(name, emptyok=('w' in mode),
   975                                createmode=createmode)
   976                                createmode=createmode)
   976         self._fp = posixfile(self.temp, mode)
   977         self._fp = posixfile(self.temp, mode)
   977 
   978 
   978     def __getattr__(self, name):
   979     def __getattr__(self, name):
   986     def __del__(self):
   987     def __del__(self):
   987         if not self.closed:
   988         if not self.closed:
   988             try:
   989             try:
   989                 os.unlink(self.temp)
   990                 os.unlink(self.temp)
   990             except: pass
   991             except: pass
   991             self._fp.close()
   992             if self._fp:
       
   993                 self._fp.close()
   992 
   994 
   993 def makedirs(name, mode=None):
   995 def makedirs(name, mode=None):
   994     """recursive directory creation with parent mode inheritance"""
   996     """recursive directory creation with parent mode inheritance"""
   995     try:
   997     try:
   996         os.mkdir(name)
   998         os.mkdir(name)