profiling: add config option for enabling profiling
authorDurham Goode <durham@fb.com>
Mon, 07 Sep 2015 11:35:40 -0700
changeset 26186 eb2187ebdf8a
parent 26185 e8f9dffca36f
child 26187 9cf65f43b49b
profiling: add config option for enabling profiling Previously you could only enable profiling via the --profile option. This is awkward when trying to debug a server side operation. Let's add a config option to enable profiling. In the future, this could be extended to allow profiling a certain percentage of operations (and potentially reporting that information to an external service).
mercurial/dispatch.py
--- a/mercurial/dispatch.py	Mon Sep 07 11:31:44 2015 -0700
+++ b/mercurial/dispatch.py	Mon Sep 07 11:35:40 2015 -0700
@@ -1003,13 +1003,17 @@
         statprof.display(fp)
 
 def _runcommand(ui, options, cmd, cmdfunc):
+    """Enables the profiler if applicable.
+
+    ``profiling.enabled`` - boolean config that enables or disables profiling
+    """
     def checkargs():
         try:
             return cmdfunc()
         except error.SignatureError:
             raise error.CommandError(cmd, _("invalid arguments"))
 
-    if options['profile']:
+    if options['profile'] or ui.configbool('profiling', 'enabled'):
         profiler = os.getenv('HGPROF')
         if profiler is None:
             profiler = ui.config('profiling', 'type', default='ls')