Mercurial > public > mercurial-scm > hg-stable
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) |