Skip to content

Conversation

@mjcheetham
Copy link

In 353d3d7 (trace2: collect Windows-specific process information)
Windows-specific process ancestry information was added as a data_json
event to TRACE2. Furthermore in 2f732bf (tr2: log parent process name)
similar functionality was added for Linux-based systems, using procfs.

Let's teach Git on macOS to also gather process ancestry information,
and emit it as a cmd_ancestry TRACE2 event.

Furthermore, let's refactor the Windows implementation to align with
the Linux and macOS versions - by emitting the ancestry information as
a cmd_ancestry event. We keep the older, custom data_json event type
on Windows for compatibility for consumers of the TRACE2 data that use
the older event.

Thanks,
Matthew

In 353d3d7 (trace2: collect Windows-specific process information)
Windows-specific process ancestry information was added as a data_json
event to TRACE2. Furthermore in 2f732bf (tr2: log parent process name)
similar functionality was added for Linux-based systems, using procfs.

Teach Git to also log process ancestry on macOS using the sysctl with
KERN_PROC to get process information (PPID and process name).
Like the Linux implementation, we use the cmd_ancestry TRACE2 event
rather than using a data_json event and creating another custom data
point.

Signed-off-by: Matthew John Cheetham <[email protected]>
Include an implementation of trace2_collect_process_info for macOS.

Signed-off-by: Matthew John Cheetham <[email protected]>
In 353d3d7 (trace2: collect Windows-specific process information) we
added process ancestry information for Windows to TRACE2 via a data_json
event. It was only later in 2f732bf (tr2: log parent process name) that
the specific cmd_ancestry event was added to TRACE2.

In a future commit we will emit the ancestry information with the newer
cmd_ancestry TRACE2 event. Right now, we rework this implementation of
trace2_collect_process_info to separate the calculation of ancestors
from building and emiting the JSON array via a data_json event.

Signed-off-by: Matthew John Cheetham <[email protected]>
Since 2f732bf (tr2: log parent process name) it is now possible to emit
a specific process ancestry event in TRACE2. We should emit the Windows
process ancestry data with the correct event type.

To not break existing consumers of the data_json "windows/ancestry"
event, we continue to emit the ancestry data as a JSON event.

Signed-off-by: Matthew John Cheetham <[email protected]>
@mjcheetham mjcheetham marked this pull request as ready for review February 3, 2026 12:19
@mjcheetham
Copy link
Author

/preview

@gitgitgadget
Copy link

gitgitgadget bot commented Feb 3, 2026

Preview email sent as [email protected]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant