# HG changeset patch # User Thomas Arendsen Hein # Date 1146470665 -7200 # Node ID eba364839c6732b491f1b6fb309ddf18dbc6df2a # Parent 290534ee163c8416f914f71c809025bc578c0c2a# Parent f5c2c6e69fd7fae1b9fa07876ec9b82f04bf593d Merge with crew diff -r 290534ee163c -r eba364839c67 mercurial/commands.py --- a/mercurial/commands.py Mon May 01 10:02:17 2006 +0200 +++ b/mercurial/commands.py Mon May 01 10:04:25 2006 +0200 @@ -3365,7 +3365,7 @@ if num: signal.signal(num, catchterm) try: - u = ui.ui() + u = ui.ui(traceback='--traceback' in sys.argv[1:]) except util.Abort, inst: sys.stderr.write(_("abort: %s\n") % inst) return -1 @@ -3389,7 +3389,7 @@ external.append(mod) except Exception, inst: u.warn(_("*** failed to import extension %s: %s\n") % (x[0], inst)) - if "--traceback" in sys.argv[1:]: + if u.traceback: traceback.print_exc() return 1 continue @@ -3417,7 +3417,7 @@ atexit.register(print_time) u.updateopts(options["verbose"], options["debug"], options["quiet"], - not options["noninteractive"]) + not options["noninteractive"], options["traceback"]) # enter the debugger before command execution if options['debugger']: @@ -3484,7 +3484,7 @@ # enter the debugger when we hit an exception if options['debugger']: pdb.post_mortem(sys.exc_info()[2]) - if options['traceback']: + if u.traceback: traceback.print_exc() raise except ParseError, inst: diff -r 290534ee163c -r eba364839c67 mercurial/localrepo.py --- a/mercurial/localrepo.py Mon May 01 10:02:17 2006 +0200 +++ b/mercurial/localrepo.py Mon May 01 10:04:25 2006 +0200 @@ -12,7 +12,7 @@ from demandload import * demandload(globals(), "appendfile changegroup") demandload(globals(), "re lock transaction tempfile stat mdiff errno ui") -demandload(globals(), "revlog sys traceback") +demandload(globals(), "revlog traceback") class localrepository(object): def __del__(self): @@ -117,7 +117,7 @@ '%s\n') % (hname, exc)) if throw: raise - if "--traceback" in sys.argv[1:]: + if self.ui.traceback: traceback.print_exc() return False if not r: diff -r 290534ee163c -r eba364839c67 mercurial/ui.py --- a/mercurial/ui.py Mon May 01 10:02:17 2006 +0200 +++ b/mercurial/ui.py Mon May 01 10:04:25 2006 +0200 @@ -12,7 +12,7 @@ class ui(object): def __init__(self, verbose=False, debug=False, quiet=False, - interactive=True, parentui=None): + interactive=True, traceback=False, parentui=None): self.overlay = {} if parentui is None: # this is the parent of all ui children @@ -24,6 +24,7 @@ self.verbose = self.configbool("ui", "verbose") self.debugflag = self.configbool("ui", "debug") self.interactive = self.configbool("ui", "interactive", True) + self.traceback = traceback self.updateopts(verbose, debug, quiet, interactive) self.diffcache = None @@ -45,11 +46,12 @@ return getattr(self.parentui, key) def updateopts(self, verbose=False, debug=False, quiet=False, - interactive=True): + interactive=True, traceback=False): self.quiet = (self.quiet or quiet) and not verbose and not debug self.verbose = (self.verbose or verbose) or debug self.debugflag = (self.debugflag or debug) self.interactive = (self.interactive and interactive) + self.traceback = self.traceback or traceback def readconfig(self, fn, root=None): if isinstance(fn, basestring):