# HG changeset patch # User Vadim Gelfer # Date 1146439839 25200 # Node ID d0c02b4dce9af8ad7e493e48fa4973c356cba8ca # Parent cbd458228a960291994219d905367af4e4fe64c1 do not check sys.argv from localrepo when running hooks. instead add traceback field to ui class. diff -r cbd458228a96 -r d0c02b4dce9a mercurial/commands.py --- a/mercurial/commands.py Sun Apr 30 19:30:59 2006 +0200 +++ b/mercurial/commands.py Sun Apr 30 16:30:39 2006 -0700 @@ -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 cbd458228a96 -r d0c02b4dce9a mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Apr 30 19:30:59 2006 +0200 +++ b/mercurial/localrepo.py Sun Apr 30 16:30:39 2006 -0700 @@ -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 cbd458228a96 -r d0c02b4dce9a mercurial/ui.py --- a/mercurial/ui.py Sun Apr 30 19:30:59 2006 +0200 +++ b/mercurial/ui.py Sun Apr 30 16:30:39 2006 -0700 @@ -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):