comparison mercurial/util.py @ 8420:f53bc3e37655

util: make atomictempfile saner if mktempcopy fails
author Bryan O'Sullivan <bos@serpentine.com>
date Thu, 14 May 2009 14:12:32 -0700
parents 94e07bb8e5dd
children 8e2c0ab94432
comparison
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)