926 $ cat > ../crashstrip.py << EOF |
926 $ cat > ../crashstrip.py << EOF |
927 > from mercurial import error |
927 > from mercurial import error |
928 > def reposetup(ui, repo): |
928 > def reposetup(ui, repo): |
929 > class crashstriprepo(repo.__class__): |
929 > class crashstriprepo(repo.__class__): |
930 > def transaction(self, desc, *args, **kwargs): |
930 > def transaction(self, desc, *args, **kwargs): |
931 > tr = super(crashstriprepo, self).transaction(self, desc, *args, **kwargs) |
931 > tr = super(crashstriprepo, self).transaction(desc, *args, **kwargs) |
932 > if desc == 'strip': |
932 > if desc == 'strip': |
933 > def crash(tra): raise error.Abort('boom') |
933 > def crash(tra): raise error.Abort('boom') |
934 > tr.addpostclose('crash', crash) |
934 > tr.addpostclose('crash', crash) |
935 > return tr |
935 > return tr |
936 > repo.__class__ = crashstriprepo |
936 > repo.__class__ = crashstriprepo |