profiling: Adding a profiling.format config variable
authorNicolas Dumazet <nicdumz.commits@gmail.com>
Thu, 02 Apr 2009 16:01:30 +0900
changeset 8023 fd9debb3ea1b
parent 8022 4f3fdfaa3874
child 8024 9a1b86cfd29e
profiling: Adding a profiling.format config variable Allows defining other output formats for profiling. If an invalid format is given, output a warning and ignore it. For now, only the standard 'text' value is supported.
doc/hgrc.5.txt
mercurial/dispatch.py
tests/test-profile
--- a/doc/hgrc.5.txt	Wed Apr 08 14:19:41 2009 +0200
+++ b/doc/hgrc.5.txt	Thu Apr 02 16:01:30 2009 +0900
@@ -545,6 +545,13 @@
   collected during profiling, while 'profiling report' stands for a
   statistical text report generated from the profiling data.
   The profiling is done using lsprof.
+  format;;
+    Profiling format.
+    Default: text.
+    text;;
+      Generate a profiling report.
+      When saving to a file, it should be noted that only the report is saved,
+      and the profiling data is not kept.
   output;;
     File path where profiling data or report should be saved.
     If the file exists, it is replaced.
--- a/mercurial/dispatch.py	Wed Apr 08 14:19:41 2009 +0200
+++ b/mercurial/dispatch.py	Thu Apr 02 16:01:30 2009 +0900
@@ -379,6 +379,13 @@
             raise error.ParseError(cmd, _("invalid arguments"))
 
     if options['profile']:
+        format = ui.config('profiling', 'format', default='text')
+
+        if not format in ['text']:
+            ui.warn(_("unrecognized profiling format '%s'"
+                        " - Ignored\n") % format)
+            format = 'text'
+
         output = ui.config('profiling', 'output')
 
         if output:
--- a/tests/test-profile	Wed Apr 08 14:19:41 2009 +0200
+++ b/tests/test-profile	Thu Apr 02 16:01:30 2009 +0900
@@ -15,4 +15,7 @@
         || echo --profile + output to file failed
     grep CallCount < ../out > /dev/null \
         || echo wrong --profile output when saving to a file
+
+    hg --profile --config profiling.format=text st 2>&1 \
+        | grep CallCount > /dev/null || echo --profile format=text failed
 fi