comparison mercurial/appendfile.py @ 2236:d7f866789d7e

reduce memory used when appendfile appends to real file.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Tue, 09 May 2006 11:08:06 -0700
parents ef3c039e7ab8
children abaee83ce0a6
comparison
equal deleted inserted replaced
2235:457e4247315d 2236:d7f866789d7e
128 '''copy data from temp files to real files.''' 128 '''copy data from temp files to real files.'''
129 # write .d file before .i file. 129 # write .d file before .i file.
130 tmpnames = self.tmpnames.items() 130 tmpnames = self.tmpnames.items()
131 tmpnames.sort() 131 tmpnames.sort()
132 for name, tmpname in tmpnames: 132 for name, tmpname in tmpnames:
133 fp = open(tmpname, 'rb') 133 ifp = open(tmpname, 'rb')
134 s = fp.read() 134 ofp = self.realopener(name, 'a')
135 fp.close() 135 for chunk in util.filechunkiter(ifp):
136 ofp.write(chunk)
137 ifp.close()
136 os.unlink(tmpname) 138 os.unlink(tmpname)
137 del self.tmpnames[name] 139 del self.tmpnames[name]
138 fp = self.realopener(name, 'a') 140 ofp.close()
139 fp.write(s)
140 fp.close()
141 141
142 def cleanup(self): 142 def cleanup(self):
143 '''delete temp files (this discards unwritten data!)''' 143 '''delete temp files (this discards unwritten data!)'''
144 for tmpname in self.tmpnames.values(): 144 for tmpname in self.tmpnames.values():
145 os.unlink(tmpname) 145 os.unlink(tmpname)