diff -r ae5d0a22ee7e -r 59513ec76748 mercurial/transaction.py --- a/mercurial/transaction.py Sun Nov 09 12:31:34 2014 -0500 +++ b/mercurial/transaction.py Thu Nov 13 10:22:47 2014 +0000 @@ -329,12 +329,13 @@ @active def close(self): '''commit the transaction''' - if self.count == 1 and self.onclose is not None: + if self.count == 1: self._generatefiles() categories = sorted(self._finalizecallback) for cat in categories: self._finalizecallback[cat](self) - self.onclose() + if self.onclose is not None: + self.onclose() self.count -= 1 if self.count != 0: