--- a/mercurial/commands.py Mon Mar 06 17:47:41 2006 +0100
+++ b/mercurial/commands.py Mon Mar 06 17:53:11 2006 +0100
@@ -2863,27 +2863,30 @@
else:
d = lambda: func(u, *args, **cmdoptions)
- if options['profile']:
- import hotshot, hotshot.stats
- prof = hotshot.Profile("hg.prof")
- try:
+ try:
+ if options['profile']:
+ import hotshot, hotshot.stats
+ prof = hotshot.Profile("hg.prof")
try:
- return prof.runcall(d)
- except:
try:
- u.warn(_('exception raised - generating profile '
- 'anyway\n'))
+ return prof.runcall(d)
except:
- pass
- raise
- finally:
- prof.close()
- stats = hotshot.stats.load("hg.prof")
- stats.strip_dirs()
- stats.sort_stats('time', 'calls')
- stats.print_stats(40)
- else:
- return d()
+ try:
+ u.warn(_('exception raised - generating '
+ 'profile anyway\n'))
+ except:
+ pass
+ raise
+ finally:
+ prof.close()
+ stats = hotshot.stats.load("hg.prof")
+ stats.strip_dirs()
+ stats.sort_stats('time', 'calls')
+ stats.print_stats(40)
+ else:
+ return d()
+ finally:
+ u.flush()
except:
# enter the debugger when we hit an exception
if options['debugger']:
--- a/mercurial/ui.py Mon Mar 06 17:47:41 2006 +0100
+++ b/mercurial/ui.py Mon Mar 06 17:53:11 2006 +0100
@@ -152,6 +152,12 @@
for a in args:
sys.stderr.write(str(a))
+ def flush(self):
+ try:
+ sys.stdout.flush()
+ finally:
+ sys.stderr.flush()
+
def readline(self):
return sys.stdin.readline()[:-1]
def prompt(self, msg, pat, default="y"):