git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/4] trace2: move 'def_param' events into 'cmd_name' and 'cmd_alias'

From
JGJeff Hostetler via GitGitGadget <gitgitgadget@gmail.com>
Date
Mar 4, 2024, 15:40 UTC
Message-ID
<pull.1679.git.1709566808.gitgitgadget@gmail.com>

Some Git commands do not emit def_param events for interesting config and environment variable settings. Let's fix that.

Builtin commands compiled into git.c have the normal control flow and emit a cmd_name event and then def_param events for each interesting config and environment variable. However, some special "query" commands, like --exec-path, or some forms of alias expansion, emitted a cmd_name but did not emit def_param events.

Also, special commands git-remote-https is built from remote-curl.c and git-http-fetch is built from http-fetch.c and do not use the normal set up in git.c. These emitted a cmd_name but not def_param events.

To minimize the footprint of this commit, move the calls to trace2_cmd_list_config() and trace2_cmd_list_env_vars() into trace2_cmd_name() and trace2_cmd_alias() so that we always get a set def_param events when a cmd_name or cmd_alias event is generated.

Users can define local config settings on a repo to classify/name a repo (e.g. "project-foo" vs "personal") and use the def_param feature to label Trace2 data so that (a third-party) telemetry service does not collect data on personal repos or so that telemetry from one work repo is distinguishable from another work repo.

Jeff Hostetler (4):
  t0211: demonstrate missing 'def_param' events for certain commands
  trace2: avoid emitting 'def_param' set more than once
  trace2: emit 'def_param' set with 'cmd_name' event
  trace2: remove unneeded calls to generate 'def_param' set
 git.c                  |   6 --
 t/t0211-trace2-perf.sh | 231 +++++++++++++++++++++++++++++++++++++++++
 trace2.c               |  15 +++
 3 files changed, 246 insertions(+), 6 deletions(-)
base-commit: 0f9d4d28b7e6021b7e6db192b7bf47bd3a0d0d1d
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1679%2Fjeffhostetler%2Falways-emit-def-param-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1679/jeffhostetler/always-emit-def-param-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1679
-- 
gitgitgadget
Next: Jeff Hostetler via GitGitGadget
Message 1 of 13 in “trace2: move 'def_param' events into 'cmd_name' and 'cmd_alias'”
  1. 0/4 trace2: move 'def_param' events into 'cmd_name' and 'cmd_alias'Jeff Hostetler via GitGitGadget, Mar 4, 2024
  2. 1/4 t0211: demonstrate missing 'def_param' events for certain commandsJeff Hostetler via GitGitGadget, Mar 4, 2024
  3. 2/4 trace2: avoid emitting 'def_param' set more than onceJeff Hostetler via GitGitGadget, Mar 4, 2024
  4. 3/4 trace2: emit 'def_param' set with 'cmd_name' eventJeff Hostetler via GitGitGadget, Mar 4, 2024
  5. 4/4 trace2: remove unneeded calls to generate 'def_param' setJeff Hostetler via GitGitGadget, Mar 4, 2024
  6. Josh SteadmonMar 6, 2024
  7. Junio C HamanoMar 6, 2024
  8. Jeff HostetlerMar 6, 2024
  9. Junio C HamanoMar 6, 2024
  10. 0/3 trace2: move generation of 'def_param' events into code for 'cmd_name'Jeff Hostetler via GitGitGadget, Mar 7, 2024
  11. 2/3 trace2: avoid emitting 'def_param' set more than onceJeff Hostetler via GitGitGadget, Mar 7, 2024
  12. 1/3 t0211: demonstrate missing 'def_param' events for certain commandsJeff Hostetler via GitGitGadget, Mar 7, 2024
  13. 3/3 trace2: emit 'def_param' set with 'cmd_name' eventJeff Hostetler via GitGitGadget, Mar 7, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.