# HG changeset patch # User Matt Mackall # Date 1181614164 18000 # Node ID 741f64dfc04d14eb764f087dbcdeb26d644c2c8f # Parent 38cdee6b6675b22900d09cd3abe1222da5fa22da dispatch: parse and apply -R early This allows us to use extensions specified in .hg/hgrc. Unfortunately, this requires us to parse that file twice, but performance impact on the version command appears to be less than 1%. diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -9,7 +9,7 @@ from node import * from i18n import _ import os, sys, mdiff, bdiff, util, templater, patch, commands import atexit, signal, pdb, hg, lock, fancyopts, traceback -import socket, revlog, version, extensions, errno +import socket, revlog, version, extensions, errno, localrepo revrangesep = ':' @@ -255,6 +255,15 @@ def dispatch(ui, args): extensions.loadall(ui) ui.addreadhook(extensions.loadall) + # read the local extension info into a local ui object + rcpath = earlygetopt(["-R", "--repository"], args) or localrepo.findrepo() + if rcpath: + try: + lui = commands.ui.ui(parentui=ui) + lui.readconfig(os.path.join(rcpath, ".hg", "hgrc")) + except IOError: + pass + cmd, func, args, options, cmdoptions = parse(ui, args) if options["encoding"]: