Excerpts from Yuya Nishihara's message of 2016-12-19 23:46:26 +0900: > On Sun, 18 Dec 2016 18:24:45 +0000, Jun Wu wrote: > > The direction is to eventually lose control on "ui" used in runcommand, and > > let dispatch construct a "ui" object on its own. > > I got it. > > > And we then use a special > > "uisetup" which calls "wrapui" to modify the ui object created by dispatch. > > Who will call this "uisetup"? dispatch or chgserver.runcommand?
The plan is to add a "uisetup" argument to dispatch.request: diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -49,5 +49,5 @@ from . import ( class request(object): def __init__(self, args, ui=None, repo=None, fin=None, fout=None, - ferr=None): + ferr=None, uisetup=None): self.args = args self.ui = ui @@ -59,4 +59,7 @@ class request(object): self.ferr = ferr + # an extra uisetup unrelated to extensions, used by chg + self.uisetup = uisetup + def run(): "run the command in sys.argv" @@ -660,4 +663,9 @@ def _dispatch(req): extensions.loadall(lui) exts = [ext for ext in extensions.extensions() if ext[0] not in _loaded] + + # An extra uisetup of the request, currently used by chg + if req.uisetup is not None: + req.uisetup(lui) + # Propagate any changes to lui.__class__ by extensions ui.__class__ = lui.__class__ > I'm slightly afraid of modifying ui class in the middle of the server session > since the ui might be used after runcommand(). That could lead to a subtle > bug. I agree. So patch 4 should be deferred until the uisetup work is done. Since that depends on a lot of other things. Patch 4 should be dropped now. > > Maybe this patch should be moved after adding "uisetup" in dispatch.request. > > If it is a temporary code, I don't care much about the cleanliness. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel