summaryrefslogtreecommitdiffstats
path: root/technical
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-08-30 10:58:50 -0700
committerJunio C Hamano <gitster@pobox.com>2022-08-30 10:58:50 -0700
commit594d2d454755bedd85c5bcb9fb5dc59990592087 (patch)
tree0bd89a2d31c11cbb29323b46057b741ef26e7139 /technical
parent4155e41e0e67c0ac9309aa68dfc46bd49902ebd2 (diff)
downloadgit-htmldocs-594d2d454755bedd85c5bcb9fb5dc59990592087.tar.gz
Autogenerated HTML docs for v2.37.3-446-gd42b38
Diffstat (limited to 'technical')
-rw-r--r--technical/api-trace2.html45
-rw-r--r--technical/api-trace2.txt40
-rw-r--r--technical/scalar.txt17
3 files changed, 94 insertions, 8 deletions
diff --git a/technical/api-trace2.html b/technical/api-trace2.html
index c28fe02c3..b04dcc5eb 100644
--- a/technical/api-trace2.html
+++ b/technical/api-trace2.html
@@ -1643,6 +1643,7 @@ not be compared to the child&#8217;s atexit times.</p></div>
<pre><code>{
"event":"def_param",
...
+ "scope":"global",
"param":"core.abbrev",
"value":"7"
}</code></pre>
@@ -2172,6 +2173,48 @@ at offset 508.</p></div>
<div class="paragraph"><p>This example also shows that thread names are assigned in a racy manner
as each thread starts and allocates TLS storage.</p></div>
</dd>
+<dt class="hdlist1">
+Config (def param) Events
+</dt>
+<dd>
+<p>
+ Dump "interesting" config values to trace2 log.
+</p>
+<div class="paragraph"><p>We can optionally emit configuration events, see
+<code>trace2.configparams</code> in <a href="../git-config.html">git-config(1)</a> for how to enable
+it.</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>$ 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</code></pre>
+</div></div>
+<div class="paragraph"><p>Then, mark the config <code>color.ui</code> as "interesting" config with
+<code>GIT_TRACE2_CONFIG_PARAMS</code>:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>$ export GIT_TRACE2_PERF_BRIEF=1
+$ export GIT_TRACE2_PERF=~/log.perf
+$ export GIT_TRACE2_CONFIG_PARAMS=color.ui
+$ git version
+...
+$ 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 | | | | 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.000470 | | | code:0
+d0 | main | atexit | | 0.000477 | | | code:0</code></pre>
+</div></div>
+</dd>
</dl></div>
</div>
</div>
@@ -2216,7 +2259,7 @@ Trace2 targets (and convert &lt;key&gt; to a "category").
<div id="footer">
<div id="footer-text">
Last updated
- 2022-06-10 15:52:52 PDT
+ 2022-08-30 10:56:31 PDT
</div>
</div>
</body>
diff --git a/technical/api-trace2.txt b/technical/api-trace2.txt
index 77a150b30..2afa28bb5 100644
--- a/technical/api-trace2.txt
+++ b/technical/api-trace2.txt
@@ -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"
}
@@ -1207,6 +1208,45 @@ at offset 508.
This example also shows that thread names are assigned in a racy manner
as each thread starts and allocates TLS storage.
+Config (def param) Events::
+
+ Dump "interesting" config values to trace2 log.
++
+We can optionally emit configuration events, see
+`trace2.configparams` in linkgit:git-config[1] for how to enable
+it.
++
+----------------
+$ 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
+`GIT_TRACE2_CONFIG_PARAMS`:
++
+----------------
+$ export GIT_TRACE2_PERF_BRIEF=1
+$ export GIT_TRACE2_PERF=~/log.perf
+$ export GIT_TRACE2_CONFIG_PARAMS=color.ui
+$ git version
+...
+$ 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 | | | | 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.000470 | | | code:0
+d0 | main | atexit | | 0.000477 | | | code:0
+----------------
== Future Work
=== Relationship to the Existing Trace Api (api-trace.txt)
diff --git a/technical/scalar.txt b/technical/scalar.txt
index f6353375f..0600150b3 100644
--- a/technical/scalar.txt
+++ b/technical/scalar.txt
@@ -87,17 +87,20 @@ series have been accepted:
- `scalar-generalize-diagnose`: Move the functionality of `scalar diagnose`
into `git diagnose` and `git bugreport --diagnose`.
+- 'scalar-add-fsmonitor: Enable the built-in FSMonitor in Scalar
+ enlistments. At the end of this series, Scalar should be feature-complete
+ from the perspective of a user.
+
Roughly speaking (and subject to change), the following series are needed to
"finish" this initial version of Scalar:
-- Finish Scalar features: Enable the built-in FSMonitor in Scalar enlistments
- and implement `scalar help`. At the end of this series, Scalar should be
- feature-complete from the perspective of a user.
-
- Move Scalar to toplevel: Move Scalar out of `contrib/` and into the root of
- `git`, including updates to build and install it with the rest of Git. This
- change will incorporate Scalar into the Git CI and test framework, as well as
- expand regression and performance testing to ensure the tool is stable.
+ `git`. This includes a variety of related updates, including:
+ - building & installing Scalar in the Git root-level 'make [install]'.
+ - builing & testing Scalar as part of CI.
+ - moving and expanding test coverage of Scalar (including perf tests).
+ - implementing 'scalar help'/'git help scalar' to display scalar
+ documentation.
Finally, there are two additional patch series that exist in Microsoft's fork of
Git, but there is no current plan to upstream them. There are some interesting