580 self._abortcallback = None |
583 self._abortcallback = None |
581 _playback(self._journal, self._report, self._opener, |
584 _playback(self._journal, self._report, self._opener, |
582 self._vfsmap, self._entries, self._backupentries, |
585 self._vfsmap, self._entries, self._backupentries, |
583 False, checkambigfiles=self._checkambigfiles) |
586 False, checkambigfiles=self._checkambigfiles) |
584 self._report(_("rollback completed\n")) |
587 self._report(_("rollback completed\n")) |
585 except BaseException: |
588 except BaseException as exc: |
586 self._report(_("rollback failed - please run hg recover\n")) |
589 self._report(_("rollback failed - please run hg recover\n")) |
|
590 self._report(_("(failure reason: %s)\n") |
|
591 % stringutil.forcebytestr(exc)) |
587 finally: |
592 finally: |
588 self._journal = None |
593 self._journal = None |
589 self._releasefn(self, False) # notify failure of transaction |
594 self._releasefn(self, False) # notify failure of transaction |
590 self._releasefn = None # Help prevent cycles. |
595 self._releasefn = None # Help prevent cycles. |
591 |
596 |