Mercurial > hg > hg-git
changeset 776:81e5e8e0185c
git_handler.save_remote_refs: use an atomic temp file to write
This bug becomes obvious now that the code is structured like this.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Wed, 03 Sep 2014 19:56:45 +0200 |
parents | 9c6bd4102ef5 |
children | b7eaa734e3b6 |
files | hggit/git_handler.py |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/hggit/git_handler.py +++ b/hggit/git_handler.py @@ -207,10 +207,11 @@ self._remote_refs.update([(name, bin(sha)) for sha, name in td]) def save_remote_refs(self): - tf = open(self.repo.join(self.remote_refs_file), 'wb') + file = self.repo.opener(self.remote_refs_file, 'w+', atomictemp=True) for tag, node in self.remote_refs.iteritems(): - tf.write('%s %s\n' % (hex(node), tag)) - tf.close() + file.write('%s %s\n' % (hex(node), tag)) + # If this complains, atomictempfile no longer has close + file.close() ## END FILE LOAD AND SAVE METHODS