# HG changeset patch # User Matt Mackall # Date 1181614164 18000 # Node ID 38cdee6b6675b22900d09cd3abe1222da5fa22da # Parent 61e33f1d44a85174fd65687c1b3a63f039ef0e6c dispatch: parse and apply cwd opt early diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -238,7 +238,20 @@ def parseconfig(config): raise util.Abort(_('malformed --config option: %s') % cfg) return parsed +def earlygetopt(aliases, args): + if "--" in args: + args = args[:args.index("--")] + for opt in aliases: + if opt in args: + return args[args.index(opt) + 1] + return None + def dispatch(ui, args): + # check for cwd first + cwd = earlygetopt(['--cwd'], args) + if cwd: + os.chdir(cwd) + extensions.loadall(ui) ui.addreadhook(extensions.loadall) @@ -261,9 +274,6 @@ def dispatch(ui, args): (t[4]-s[4], t[0]-s[0], t[2]-s[2], t[1]-s[1], t[3]-s[3])) atexit.register(print_time) - if options['cwd']: - os.chdir(options['cwd']) - ui.updateopts(options["verbose"], options["debug"], options["quiet"], not options["noninteractive"], options["traceback"], parseconfig(options["config"]))