From patchwork Sat Jul 13 22:16:55 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1, of, 2] dispatch: move command line --config argument parsing to _runcatch() From: Sean Farley X-Patchwork-Id: 1879 Message-Id: <15a903bca551318cd0c3.1373753815@laptop.local> To: mercurial-devel@selenic.com Date: Sat, 13 Jul 2013 17:16:55 -0500 # HG changeset patch # User Sean Farley # Date 1373751187 18000 # Sat Jul 13 16:33:07 2013 -0500 # Node ID 15a903bca551318cd0c3f42484374a8b8acd08e5 # Parent 3af3a165db18ed093394fe661e797bea296dc602 dispatch: move command line --config argument parsing to _runcatch() Previously, command line parsing of --config arguments was done in _dispatch. This means that it takes place after activating the debugger. In an upcoming patch, we will add a ui.debugger setting so we need to have this parsing done before _runcatch. diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -86,10 +86,21 @@ except ValueError: pass # happens if called in a thread try: try: + + # read --config before doing anything else + # (e.g. to change trust settings for reading .hg/hgrc) + cfgs = _parseconfig(req.ui, _earlygetopt(['--config'], req.args)) + + if req.repo: + # copy configs that were passed on the cmdline (--config) to + # the repo ui + for cfg in cfgs: + req.repo.ui.setconfig(*cfg) + # enter the debugger before command execution if '--debugger' in req.args: ui.warn(_("entering debugger - " "type c to continue starting hg or h for help\n")) pdb.set_trace() @@ -617,14 +628,10 @@ _loaded = set() def _dispatch(req): args = req.args ui = req.ui - # read --config before doing anything else - # (e.g. to change trust settings for reading .hg/hgrc) - cfgs = _parseconfig(ui, _earlygetopt(['--config'], args)) - # check for cwd cwd = _earlygetopt(['--cwd'], args) if cwd: os.chdir(cwd[-1]) @@ -697,14 +704,10 @@ uis = set([ui, lui]) if req.repo: uis.add(req.repo.ui) - # copy configs that were passed on the cmdline (--config) to the repo ui - for cfg in cfgs: - req.repo.ui.setconfig(*cfg) - if options['verbose'] or options['debug'] or options['quiet']: for opt in ('verbose', 'debug', 'quiet'): val = str(bool(options[opt])) for ui_ in uis: ui_.setconfig('ui', opt, val)