diff -r 03d2d6931836 -r e44399c494ab mercurial/changelog.py --- a/mercurial/changelog.py Wed Nov 05 09:27:08 2014 +0000 +++ b/mercurial/changelog.py Sat Nov 08 17:08:09 2014 +0000 @@ -273,7 +273,11 @@ if self._delaybuf: # make a temporary copy of the index fp1 = self._realopener(self.indexfile) - fp2 = self._realopener(self.indexfile + ".a", "w") + pendingfilename = self.indexfile + ".a" + # register as a temp file to ensure cleanup on failure + tr.registertmp(pendingfilename) + # write existing data + fp2 = self._realopener(pendingfilename, "w") fp2.write(fp1.read()) # add pending data fp2.write("".join(self._delaybuf))