Skip to content

Commit

Permalink
trace2: emit 'def_param' set with 'cmd_name' event
Browse files Browse the repository at this point in the history
Some commands do not cause a set of 'def_param' events to be emitted.
This includes "git-remote-https", "git-http-fetch", and various
"query" commands, like "git --man-path".

Since all of these commands do emit a 'cmd_name' event, add code to
the "trace2_cmd_name()" function to generate the set of 'def_param'
events.

Remove explicit calls to "trace2_cmd_list_config()" and
"trace2_cmd_list_env_vars()" in git.c since they are no longer needed.

Reviewed-by: Josh Steadmon <[email protected]>
Signed-off-by: Jeff Hostetler <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
jeffhostetler committed Mar 21, 2024
1 parent cc026b2 commit 910c853
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 9 deletions.
6 changes: 0 additions & 6 deletions git.c
Original file line number Diff line number Diff line change
Expand Up @@ -377,8 +377,6 @@ static int handle_alias(int *argcp, const char ***argv)
strvec_pushv(&child.args, (*argv) + 1);

trace2_cmd_alias(alias_command, child.args.v);
trace2_cmd_list_config();
trace2_cmd_list_env_vars();
trace2_cmd_name("_run_shell_alias_");

ret = run_command(&child);
Expand Down Expand Up @@ -415,8 +413,6 @@ static int handle_alias(int *argcp, const char ***argv)
COPY_ARRAY(new_argv + count, *argv + 1, *argcp);

trace2_cmd_alias(alias_command, new_argv);
trace2_cmd_list_config();
trace2_cmd_list_env_vars();

*argv = new_argv;
*argcp += count - 1;
Expand Down Expand Up @@ -534,8 +530,6 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)

trace_argv_printf(argv, "trace: built-in: git");
trace2_cmd_name(p->cmd);
trace2_cmd_list_config();
trace2_cmd_list_env_vars();

validate_cache_entries(the_repository->index);
exit_code = status = p->fn(argc, argv, prefix);
Expand Down
6 changes: 3 additions & 3 deletions t/t0211-trace2-perf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ test_expect_success 'expect def_params for normal builtin command' '
# Representative query command dispatched in handle_options()
# in git.c
#
test_expect_failure 'expect def_params for query command' '
test_expect_success 'expect def_params for query command' '
try_simple "git --man-path" "_query_"
'

Expand All @@ -337,7 +337,7 @@ test_expect_failure 'expect def_params for query command' '
# remote-curl.c rather than git.c. Confirm that we get def_param
# events from both layers.
#
test_expect_failure 'expect def_params for remote-curl and _run_dashed_' '
test_expect_success 'expect def_params for remote-curl and _run_dashed_' '
test_when_finished "rm prop.perf actual" &&
test_config_global "trace2.configParams" "cfg.prop.*" &&
Expand Down Expand Up @@ -366,7 +366,7 @@ test_expect_failure 'expect def_params for remote-curl and _run_dashed_' '
# an executable built from http-fetch.c. Confirm that we get
# def_param events from both layers.
#
test_expect_failure 'expect def_params for http-fetch and _run_dashed_' '
test_expect_success 'expect def_params for http-fetch and _run_dashed_' '
test_when_finished "rm prop.perf actual" &&
test_config_global "trace2.configParams" "cfg.prop.*" &&
Expand Down
3 changes: 3 additions & 0 deletions trace2.c
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,9 @@ void trace2_cmd_name_fl(const char *file, int line, const char *name)
for_each_wanted_builtin (j, tgt_j)
if (tgt_j->pfn_command_name_fl)
tgt_j->pfn_command_name_fl(file, line, name, hierarchy);

trace2_cmd_list_config();
trace2_cmd_list_env_vars();
}

void trace2_cmd_mode_fl(const char *file, int line, const char *mode)
Expand Down

0 comments on commit 910c853

Please sign in to comment.