Mercurial > hg
changeset 14916:58f97dcbd550 stable
hooks: use python 2.4 compatible exception handling
author | Lee Cantey <lcantey@gmail.com> |
---|---|
date | Fri, 22 Jul 2011 08:03:47 -0700 |
parents | 28edd65000d9 |
children | 2957b8b1e809 |
files | mercurial/hook.py |
diffstat | 1 files changed, 19 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hook.py Fri Jul 22 17:11:35 2011 -0500 +++ b/mercurial/hook.py Fri Jul 22 08:03:47 2011 -0700 @@ -65,26 +65,27 @@ '("%s" is not callable)') % (hname, funcname)) try: - # redirect IO descriptors the the ui descriptors so hooks that write - # directly to these don't mess the command protocol when running through - # the command server - old = sys.stdout, sys.stderr, sys.stdin - sys.stdout, sys.stderr, sys.stdin = ui.fout, ui.ferr, ui.fin + try: + # redirect IO descriptors the the ui descriptors so hooks + # that write directly to these don't mess up the command + # protocol when running through the command server + old = sys.stdout, sys.stderr, sys.stdin + sys.stdout, sys.stderr, sys.stdin = ui.fout, ui.ferr, ui.fin - r = obj(ui=ui, repo=repo, hooktype=name, **args) - except KeyboardInterrupt: - raise - except Exception, exc: - if isinstance(exc, util.Abort): - ui.warn(_('error: %s hook failed: %s\n') % - (hname, exc.args[0])) - else: - ui.warn(_('error: %s hook raised an exception: ' - '%s\n') % (hname, exc)) - if throw: + r = obj(ui=ui, repo=repo, hooktype=name, **args) + except KeyboardInterrupt: raise - ui.traceback() - return True + except Exception, exc: + if isinstance(exc, util.Abort): + ui.warn(_('error: %s hook failed: %s\n') % + (hname, exc.args[0])) + else: + ui.warn(_('error: %s hook raised an exception: ' + '%s\n') % (hname, exc)) + if throw: + raise + ui.traceback() + return True finally: sys.stdout, sys.stderr, sys.stdin = old if r: