mirror of
https://github.com/git/git.git
synced 2024-11-23 18:05:29 +08:00
tr2: shows scope unconditionally in addition to key-value pair
When we specify GIT_TRACE2_CONFIG_PARAMS or trace2.configparams, trace2 will prints "interesting" config values to log. Sometimes, when a config set in multiple scope files, the following output looks like (the irrelevant fields are omitted here as "..."): ...| def_param | ... | core.multipackindex:false ...| def_param | ... | core.multipackindex:false ...| def_param | ... | core.multipackindex:false As the log shows, even each config in different scope is dumped, but we don't know which scope it comes from. Therefore, it's better to add the scope names as well to make them be more recognizable. For example, when execute: $ GIT_TRACE2_PERF=1 \ > GIT_TRACE2_CONFIG_PARAMS=core.multipackIndex \ > git rev-list --test-bitmap HEAD" The following is the ouput (the irrelevant fields are omitted here as "..."): Format normal: ... git.c:461 ... def_param scope:system core.multipackindex=false ... git.c:461 ... def_param scope:global core.multipackindex=false ... git.c:461 ... def_param scope:local core.multipackindex=false Format perf: ... | def_param | ... | scope:system | core.multipackindex:false ... | def_param | ... | scope:global | core.multipackindex:false ... | def_param | ... | scope:local | core.multipackindex:false Format event: {"event":"def_param", ... ,"scope":"system","param":"core.multipackindex","value":"false"} {"event":"def_param", ... ,"scope":"global","param":"core.multipackindex","value":"false"} {"event":"def_param", ... ,"scope":"local","param":"core.multipackindex","value":"false"} Signed-off-by: Teng Long <dyroneteng@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
050d0dc241
commit
35ae40ead3
@ -717,6 +717,7 @@ The "exec_id" field is a command-unique id and is only useful if the
|
||||
{
|
||||
"event":"def_param",
|
||||
...
|
||||
"scope":"global",
|
||||
"param":"core.abbrev",
|
||||
"value":"7"
|
||||
}
|
||||
@ -1216,7 +1217,13 @@ We can optionally emit configuration events, see
|
||||
it.
|
||||
+
|
||||
----------------
|
||||
$ git config color.ui auto
|
||||
$ git config --system color.ui never
|
||||
$ git config --global color.ui always
|
||||
$ git config --local color.ui auto
|
||||
$ git config --list --show-scope | grep 'color.ui'
|
||||
system color.ui=never
|
||||
global color.ui=always
|
||||
local color.ui=auto
|
||||
----------------
|
||||
+
|
||||
Then, mark the config `color.ui` as "interesting" config with
|
||||
@ -1232,11 +1239,13 @@ $ cat ~/log.perf
|
||||
d0 | main | version | | | | | ...
|
||||
d0 | main | start | | 0.001642 | | | /usr/local/bin/git version
|
||||
d0 | main | cmd_name | | | | | version (version)
|
||||
d0 | main | def_param | | | | | color.ui:auto
|
||||
d0 | main | def_param | | | | scope:system | color.ui:never
|
||||
d0 | main | def_param | | | | scope:global | color.ui:always
|
||||
d0 | main | def_param | | | | scope:local | color.ui:auto
|
||||
d0 | main | data | r0 | 0.002100 | 0.002100 | fsync | fsync/writeout-only:0
|
||||
d0 | main | data | r0 | 0.002126 | 0.002126 | fsync | fsync/hardware-flush:0
|
||||
d0 | main | exit | | 0.002142 | | | code:0
|
||||
d0 | main | atexit | | 0.002161 | | | code:0
|
||||
d0 | main | exit | | 0.000470 | | | code:0
|
||||
d0 | main | atexit | | 0.000477 | | | code:0
|
||||
----------------
|
||||
== Future Work
|
||||
|
||||
|
@ -479,9 +479,12 @@ static void fn_param_fl(const char *file, int line, const char *param,
|
||||
{
|
||||
const char *event_name = "def_param";
|
||||
struct json_writer jw = JSON_WRITER_INIT;
|
||||
enum config_scope scope = current_config_scope();
|
||||
const char *scope_name = config_scope_name(scope);
|
||||
|
||||
jw_object_begin(&jw, 0);
|
||||
event_fmt_prepare(event_name, file, line, NULL, &jw);
|
||||
jw_object_string(&jw, "scope", scope_name);
|
||||
jw_object_string(&jw, "param", param);
|
||||
jw_object_string(&jw, "value", value);
|
||||
jw_end(&jw);
|
||||
|
@ -298,8 +298,11 @@ static void fn_param_fl(const char *file, int line, const char *param,
|
||||
const char *value)
|
||||
{
|
||||
struct strbuf buf_payload = STRBUF_INIT;
|
||||
enum config_scope scope = current_config_scope();
|
||||
const char *scope_name = config_scope_name(scope);
|
||||
|
||||
strbuf_addf(&buf_payload, "def_param %s=%s", param, value);
|
||||
strbuf_addf(&buf_payload, "def_param scope:%s %s=%s", scope_name, param,
|
||||
value);
|
||||
normal_io_write_fl(file, line, &buf_payload);
|
||||
strbuf_release(&buf_payload);
|
||||
}
|
||||
|
@ -441,12 +441,17 @@ static void fn_param_fl(const char *file, int line, const char *param,
|
||||
{
|
||||
const char *event_name = "def_param";
|
||||
struct strbuf buf_payload = STRBUF_INIT;
|
||||
struct strbuf scope_payload = STRBUF_INIT;
|
||||
enum config_scope scope = current_config_scope();
|
||||
const char *scope_name = config_scope_name(scope);
|
||||
|
||||
strbuf_addf(&buf_payload, "%s:%s", param, value);
|
||||
strbuf_addf(&scope_payload, "%s:%s", "scope", scope_name);
|
||||
|
||||
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL, NULL,
|
||||
&buf_payload);
|
||||
perf_io_write_fl(file, line, event_name, NULL, NULL, NULL,
|
||||
scope_payload.buf, &buf_payload);
|
||||
strbuf_release(&buf_payload);
|
||||
strbuf_release(&scope_payload);
|
||||
}
|
||||
|
||||
static void fn_repo_fl(const char *file, int line,
|
||||
|
Loading…
Reference in New Issue
Block a user