From 3d3adaad914441a6e7b916eb8dfd5ae638aab068 Mon Sep 17 00:00:00 2001 From: Josh Steadmon Date: Fri, 20 Mar 2020 14:06:15 -0700 Subject: trace2: teach Git to log environment variables Via trace2, Git can already log interesting config parameters (see the trace2_cmd_list_config() function). However, this can grant an incomplete picture because many config parameters also allow overrides via environment variables. To allow for more complete logs, we add a new trace2_cmd_list_env_vars() function and supporting implementation, modeled after the pre-existing config param logging implementation. Signed-off-by: Josh Steadmon Acked-by: Jeff Hostetler Signed-off-by: Junio C Hamano --- trace2.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'trace2.h') diff --git a/trace2.h b/trace2.h index e5e81c0533..b18bc5529c 100644 --- a/trace2.h +++ b/trace2.h @@ -182,6 +182,19 @@ void trace2_cmd_list_config_fl(const char *file, int line); #define trace2_cmd_list_config() trace2_cmd_list_config_fl(__FILE__, __LINE__) +/* + * Emit one or more 'def_param' events for "important" environment variables. + * + * Use the TR2_SYSENV_ENV_VARS setting to register a comma-separated list of + * environment variables considered important. For example: + * git config --system trace2.envVars 'GIT_HTTP_USER_AGENT,GIT_CONFIG' + * or: + * GIT_TRACE2_ENV_VARS="GIT_HTTP_USER_AGENT,GIT_CONFIG" + */ +void trace2_cmd_list_env_vars_fl(const char *file, int line); + +#define trace2_cmd_list_env_vars() trace2_cmd_list_env_vars_fl(__FILE__, __LINE__) + /* * Emit a "def_param" event for the given config key/value pair IF * we consider the key to be "important". -- cgit v1.3-6-g1900