915 > ) |
915 > ) |
916 > def fail(tr): |
916 > def fail(tr): |
917 > raise error.Abort(b'fail after finalization') |
917 > raise error.Abort(b'fail after finalization') |
918 > def reposetup(ui, repo): |
918 > def reposetup(ui, repo): |
919 > class failrepo(repo.__class__): |
919 > class failrepo(repo.__class__): |
920 > def commitctx(self, ctx, error=False): |
920 > def commitctx(self, ctx, error=False, origctx=None): |
921 > if self.ui.configbool(b'failafterfinalize', b'fail'): |
921 > if self.ui.configbool(b'failafterfinalize', b'fail'): |
922 > # 'sorted()' by ASCII code on category names causes |
922 > # 'sorted()' by ASCII code on category names causes |
923 > # invoking 'fail' after finalization of changelog |
923 > # invoking 'fail' after finalization of changelog |
924 > # using "'cl-%i' % id(self)" as category name |
924 > # using "'cl-%i' % id(self)" as category name |
925 > self.currenttransaction().addfinalize(b'zzzzzzzz', fail) |
925 > self.currenttransaction().addfinalize(b'zzzzzzzz', fail) |
926 > return super(failrepo, self).commitctx(ctx, error) |
926 > return super(failrepo, self).commitctx(ctx, error, origctx) |
927 > repo.__class__ = failrepo |
927 > repo.__class__ = failrepo |
928 > EOF |
928 > EOF |
929 |
929 |
930 $ hg init repo3 |
930 $ hg init repo3 |
931 $ cd repo3 |
931 $ cd repo3 |