mercurial/dispatch.py
changeset 40402 106adc261492
parent 39818 24e493ec2229
child 40414 444861dc1e55
--- a/mercurial/dispatch.py	Mon Oct 22 15:47:30 2018 +0200
+++ b/mercurial/dispatch.py	Mon Oct 22 15:51:01 2018 +0200
@@ -66,6 +66,9 @@
         # low-level repo state (for example, changelog) before extensions.
         self.prereposetups = prereposetups or []
 
+        # store the parsed and canonical command
+        self.canonical_command = None
+
     def _runexithandlers(self):
         exc = None
         handlers = self.ui._exithandlers
@@ -243,7 +246,8 @@
                 req.ui.log('uiblocked', 'ui blocked ms',
                            **pycompat.strkwargs(req.ui._blockedtimes))
             req.ui.log("commandfinish", "%s exited %d after %0.2f seconds\n",
-                       msg, ret & 255, duration)
+                       msg, ret & 255, duration,
+                       canonical_command=req.canonical_command)
             try:
                 req._runexithandlers()
             except: # exiting, so no re-raises
@@ -853,6 +857,9 @@
         fullargs = args
         cmd, func, args, options, cmdoptions = _parse(lui, args)
 
+        # store the canonical command name in request object for later access
+        req.canonical_command = cmd
+
         if options["config"] != req.earlyoptions["config"]:
             raise error.Abort(_("option --config may not be abbreviated!"))
         if options["cwd"] != req.earlyoptions["cwd"]: