diff -r 32e68271a037 -r 065c0334846f mercurial/localrepo.py --- a/mercurial/localrepo.py Tue Dec 09 13:32:19 2014 -0600 +++ b/mercurial/localrepo.py Thu Dec 04 13:49:45 2014 -0800 @@ -883,9 +883,6 @@ _("abandoned transaction found"), hint=_("run 'hg recover' to clean up transaction")) - def onclose(): - self.store.write(self._transref()) - self._writejournal(desc) renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()] rp = report and report or self.ui.warn @@ -893,8 +890,8 @@ tr = transaction.transaction(rp, self.sopener, vfsmap, "journal", aftertrans(renames), - self.store.createmode, - onclose) + self.store.createmode) + tr.addfinalize('repo.store.write', self.store.write) self._transref = weakref.ref(tr) return tr