git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / Atom feed
* [PATCH 0/1] trace2: Add variable description to git.txt
@ 2019-05-10 19:44 Derrick Stolee via GitGitGadget
  2019-05-10 19:44 ` [PATCH 1/1] " Derrick Stolee via GitGitGadget
  0 siblings, 1 reply; 13+ messages in thread
From: Derrick Stolee via GitGitGadget @ 2019-05-10 19:44 UTC (permalink / raw)
  To: git; +Cc: szeder.dev, git, Junio C Hamano

Jeff is out this week, so I picked up this request from Szeder. I'm very
open to edit suggestions.

Thanks, -Stolee

In-Reply-To: 20190510172824.GR14763@szeder.dev

Derrick Stolee (1):
  trace2: Add variable description to git.txt

 Documentation/git.txt | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)


base-commit: c173542c84cdf5e71b393e91f9d9664a85f995b2
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-189%2Fderrickstolee%2Ftrace2-docs-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-189/derrickstolee/trace2-docs-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/189
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/1] trace2: Add variable description to git.txt
  2019-05-10 19:44 [PATCH 0/1] trace2: Add variable description to git.txt Derrick Stolee via GitGitGadget
@ 2019-05-10 19:44 ` " Derrick Stolee via GitGitGadget
  2019-05-10 21:15   ` SZEDER Gábor
  0 siblings, 1 reply; 13+ messages in thread
From: Derrick Stolee via GitGitGadget @ 2019-05-10 19:44 UTC (permalink / raw)
  To: git; +Cc: szeder.dev, git, Junio C Hamano, Derrick Stolee

From: Derrick Stolee <dstolee@microsoft.com>

Documentation/technical/api-trace2.txt contains the full details
of the trace2 API and the GIT_TR2* environment variables. However,
most environment variables are included in Documentation/git.txt,
including the GIT_TRACE* variables.

Add a brief description of the GIT_TR2* variables with links to
the full technical details. The biggest difference from the
original variables is that we can specify a Unix Domain Socket.
Mention this difference, but leave the details to the technical
documents.

Reported-by: Szeder Gábor <szeder.dev@gmail.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
---
 Documentation/git.txt | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/Documentation/git.txt b/Documentation/git.txt
index 00156d64aa..e802886999 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -661,6 +661,27 @@ of clones and fetches.
 	When a curl trace is enabled (see `GIT_TRACE_CURL` above), do not dump
 	data (that is, only dump info lines and headers).
 
+`GIT_TR2`::
+	Enables more detailed trace messages from the "trace2" library.
+	Output from `GIT_TR2` is a simple text-based format for human
+	readability.
++
+The `GIT_TR2` variables can take many values. Any value available to
+the `GIT_TRACE` variables is also available to `GIT_TR2`. The `GIT_TR2`
+variables can also specify a Unix Domain Socket. See
+link:technical/api-trace2.html[Trace2 documentation] for full details.
+
+`GIT_TR2_EVENT`::
+	This setting writes a JSON-based format that is suited for machine
+	interpretation. See link:technical/api-trace2.html[Trace2 documentation]
+	for full details.
+
+`GIT_TR2_PERF`::
+	In addition to the text-based messages available in `GIT_TR2`, this
+	setting writes a column-based format for understanding nesting
+	regions. See link:technical/api-trace2.html[Trace2 documentation]
+	for full details.
+
 `GIT_REDACT_COOKIES`::
 	This can be set to a comma-separated list of strings. When a curl trace
 	is enabled (see `GIT_TRACE_CURL` above), whenever a "Cookies:" header
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/1] trace2: Add variable description to git.txt
  2019-05-10 19:44 ` [PATCH 1/1] " Derrick Stolee via GitGitGadget
@ 2019-05-10 21:15   ` SZEDER Gábor
  2019-05-19 14:43     ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* SZEDER Gábor
  0 siblings, 1 reply; 13+ messages in thread
From: SZEDER Gábor @ 2019-05-10 21:15 UTC (permalink / raw)
  To: Derrick Stolee via GitGitGadget; +Cc: git, git, Junio C Hamano, Derrick Stolee


Thanks for the quick turnaround.


On Fri, May 10, 2019 at 12:44:26PM -0700, Derrick Stolee via GitGitGadget wrote:
> From: Derrick Stolee <dstolee@microsoft.com>
> 
> Documentation/technical/api-trace2.txt contains the full details
> of the trace2 API and the GIT_TR2* environment variables. However,
> most environment variables are included in Documentation/git.txt,
> including the GIT_TRACE* variables.
> 
> Add a brief description of the GIT_TR2* variables with links to
> the full technical details. The biggest difference from the
> original variables is that we can specify a Unix Domain Socket.
> Mention this difference, but leave the details to the technical
> documents.

I think that it would be better to spell out the details instead of
linking to the technical docs, because the link will only really work
if you view the docs in a browser and you have the full docs
available.  OTOH, in 'man git' there are no links to conveniently
click on, and the git packages from e.g. Ubuntu only include the man
pages, the technical docs and the docs in html format are in the
separate 'git-doc' package.


> Reported-by: Szeder Gábor <szeder.dev@gmail.com>
> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
> ---
>  Documentation/git.txt | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/Documentation/git.txt b/Documentation/git.txt
> index 00156d64aa..e802886999 100644
> --- a/Documentation/git.txt
> +++ b/Documentation/git.txt
> @@ -661,6 +661,27 @@ of clones and fetches.
>  	When a curl trace is enabled (see `GIT_TRACE_CURL` above), do not dump
>  	data (that is, only dump info lines and headers).
>  
> +`GIT_TR2`::
> +	Enables more detailed trace messages from the "trace2" library.
> +	Output from `GIT_TR2` is a simple text-based format for human
> +	readability.
> ++
> +The `GIT_TR2` variables can take many values. Any value available to
> +the `GIT_TRACE` variables is also available to `GIT_TR2`. The `GIT_TR2`
> +variables can also specify a Unix Domain Socket. See
> +link:technical/api-trace2.html[Trace2 documentation] for full details.
> +
> +`GIT_TR2_EVENT`::
> +	This setting writes a JSON-based format that is suited for machine
> +	interpretation. See link:technical/api-trace2.html[Trace2 documentation]
> +	for full details.
> +
> +`GIT_TR2_PERF`::
> +	In addition to the text-based messages available in `GIT_TR2`, this
> +	setting writes a column-based format for understanding nesting
> +	regions. See link:technical/api-trace2.html[Trace2 documentation]
> +	for full details.
> +
>  `GIT_REDACT_COOKIES`::
>  	This can be set to a comma-separated list of strings. When a curl trace
>  	is enabled (see `GIT_TRACE_CURL` above), whenever a "Cookies:" header
> -- 
> gitgitgadget

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2*
  2019-05-10 21:15   ` SZEDER Gábor
@ 2019-05-19 14:43     ` SZEDER Gábor
  2019-05-19 14:43       ` [PATCH 2/2] trace2: document the supported values of GIT_TRACE2* env variables SZEDER Gábor
                         ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: SZEDER Gábor @ 2019-05-19 14:43 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Derrick Stolee, git, git, SZEDER Gábor

For an environment variable that is supposed to be set by users, the
GIT_TR2* env vars are just too unclear, inconsistent, and ugly.

Most of the established GIT_* environment variables don't use
abbreviations, and in case of the few that do (GIT_DIR,
GIT_COMMON_DIR, GIT_DIFF_OPTS) it's quite obvious what the
abbreviations (DIR and OPTS) stand for.  But what does TR stand for?
Track, traditional, trailer, transaction, transfer, transformation,
transition, translation, transplant, transport, traversal, tree,
trigger, truncate, trust, or ...?!

The trace2 facility, as the '2' suffix in its name suggests, is
supposed to eventually supercede Git's original trace facility.  It's
reasonable to expect that the corresponding environment variables
follow suit, and after the original GIT_TRACE variables they are
called GIT_TRACE2; there is no such thing is 'GIT_TR'.

All trace2-specific config variables are, very sensibly, in the
'trace2' section, not in 'tr2'.

OTOH, we don't gain anything at all by omitting the last three
characters of "trace" from the names of these environment variables.

So let's rename all GIT_TR2* environment variables to GIT_TRACE2*,
before they make their way into a stable release.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---

 Documentation/config/trace2.txt        | 18 +++++-----
 Documentation/git.txt                  | 14 ++++----
 Documentation/technical/api-trace2.txt | 46 +++++++++++++-------------
 t/t0001-init.sh                        |  2 +-
 t/t0210-trace2-normal.sh               | 24 +++++++-------
 t/t0211-trace2-perf.sh                 | 20 +++++------
 t/t0212-trace2-event.sh                | 16 ++++-----
 t/t0212/parse_events.perl              |  2 +-
 trace2.h                               |  2 +-
 trace2/tr2_cmd_name.c                  |  2 +-
 trace2/tr2_sid.c                       |  2 +-
 trace2/tr2_sysenv.c                    | 20 +++++------
 trace2/tr2_sysenv.h                    |  2 +-
 13 files changed, 85 insertions(+), 85 deletions(-)

diff --git a/Documentation/config/trace2.txt b/Documentation/config/trace2.txt
index a5f409c1c1..2edbfb02fe 100644
--- a/Documentation/config/trace2.txt
+++ b/Documentation/config/trace2.txt
@@ -4,17 +4,17 @@ command line arguments are not respected.
 
 trace2.normalTarget::
 	This variable controls the normal target destination.
-	It may be overridden by the `GIT_TR2` environment variable.
+	It may be overridden by the `GIT_TRACE2` environment variable.
 	The following table shows possible values.
 
 trace2.perfTarget::
 	This variable controls the performance target destination.
-	It may be overridden by the `GIT_TR2_PERF` environment variable.
+	It may be overridden by the `GIT_TRACE2_PERF` environment variable.
 	The following table shows possible values.
 
 trace2.eventTarget::
 	This variable controls the event target destination.
-	It may be overridden by the `GIT_TR2_EVENT` environment variable.
+	It may be overridden by the `GIT_TRACE2_EVENT` environment variable.
 	The following table shows possible values.
 +
 include::../trace2-target-values.txt[]
@@ -22,22 +22,22 @@ include::../trace2-target-values.txt[]
 trace2.normalBrief::
 	Boolean.  When true `time`, `filename`, and `line` fields are
 	omitted from normal output.  May be overridden by the
-	`GIT_TR2_BRIEF` environment variable.  Defaults to false.
+	`GIT_TRACE2_BRIEF` environment variable.  Defaults to false.
 
 trace2.perfBrief::
 	Boolean.  When true `time`, `filename`, and `line` fields are
 	omitted from PERF output.  May be overridden by the
-	`GIT_TR2_PERF_BRIEF` environment variable.  Defaults to false.
+	`GIT_TRACE2_PERF_BRIEF` environment variable.  Defaults to false.
 
 trace2.eventBrief::
 	Boolean.  When true `time`, `filename`, and `line` fields are
 	omitted from event output.  May be overridden by the
-	`GIT_TR2_EVENT_BRIEF` environment variable.  Defaults to false.
+	`GIT_TRACE2_EVENT_BRIEF` environment variable.  Defaults to false.
 
 trace2.eventNesting::
 	Integer.  Specifies desired depth of nested regions in the
 	event output.  Regions deeper than this value will be
-	omitted.  May be overridden by the `GIT_TR2_EVENT_NESTING`
+	omitted.  May be overridden by the `GIT_TRACE2_EVENT_NESTING`
 	environment variable.  Defaults to 2.
 
 trace2.configParams::
@@ -45,7 +45,7 @@ trace2.configParams::
 	settings that should be recorded in the trace2 output.
 	For example, `core.*,remote.*.url` would cause the trace2
 	output to contain events listing each configured remote.
-	May be overridden by the `GIT_TR2_CONFIG_PARAMS` environment
+	May be overridden by the `GIT_TRACE2_CONFIG_PARAMS` environment
 	variable.  Unset by default.
 
 trace2.destinationDebug::
@@ -53,4 +53,4 @@ trace2.destinationDebug::
 	trace target destination cannot be opened for writing.
 	By default, these errors are suppressed and tracing is
 	silently disabled.  May be overridden by the
-	`GIT_TR2_DST_DEBUG` environment variable.
+	`GIT_TRACE2_DST_DEBUG` environment variable.
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 72adfcc5e2..fcf81e3acf 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -660,23 +660,23 @@ of clones and fetches.
 	When a curl trace is enabled (see `GIT_TRACE_CURL` above), do not dump
 	data (that is, only dump info lines and headers).
 
-`GIT_TR2`::
+`GIT_TRACE2`::
 	Enables more detailed trace messages from the "trace2" library.
-	Output from `GIT_TR2` is a simple text-based format for human
+	Output from `GIT_TRACE2` is a simple text-based format for human
 	readability.
 +
-The `GIT_TR2` variables can take many values. Any value available to
-the `GIT_TRACE` variables is also available to `GIT_TR2`. The `GIT_TR2`
+The `GIT_TRACE2` variables can take many values. Any value available to
+the `GIT_TRACE` variables is also available to `GIT_TRACE2`. The `GIT_TRACE2`
 variables can also specify a Unix Domain Socket. See
 link:technical/api-trace2.html[Trace2 documentation] for full details.
 
-`GIT_TR2_EVENT`::
+`GIT_TRACE2_EVENT`::
 	This setting writes a JSON-based format that is suited for machine
 	interpretation. See link:technical/api-trace2.html[Trace2 documentation]
 	for full details.
 
-`GIT_TR2_PERF`::
-	In addition to the text-based messages available in `GIT_TR2`, this
+`GIT_TRACE2_PERF`::
+	In addition to the text-based messages available in `GIT_TRACE2`, this
 	setting writes a column-based format for understanding nesting
 	regions. See link:technical/api-trace2.html[Trace2 documentation]
 	for full details.
diff --git a/Documentation/technical/api-trace2.txt b/Documentation/technical/api-trace2.txt
index 9e585b8e79..23c3cc7a37 100644
--- a/Documentation/technical/api-trace2.txt
+++ b/Documentation/technical/api-trace2.txt
@@ -23,7 +23,7 @@ formats in the future.  This might be used to define a binary format,
 for example.
 
 Trace2 is controlled using `trace2.*` config values in the system and
-global config files and `GIT_TR2*` environment variables.  Trace2 does
+global config files and `GIT_TRACE2*` environment variables.  Trace2 does
 not read from repo local or worktree config files or respect `-c`
 command line config settings.
 
@@ -42,7 +42,7 @@ config setting.
 For example
 
 ------------
-$ export GIT_TR2=~/log.normal
+$ export GIT_TRACE2=~/log.normal
 $ git version
 git version 2.20.1.155.g426c96fcdb
 ------------
@@ -71,13 +71,13 @@ $ cat ~/log.normal
 The performance format target (PERF) is a column-based format to
 replace GIT_TRACE_PERFORMANCE and is suitable for development and
 testing, possibly to complement tools like gprof.  This format is
-enabled with the `GIT_TR2_PERF` environment variable or the
+enabled with the `GIT_TRACE2_PERF` environment variable or the
 `trace2.perfTarget` system or global config setting.
 
 For example
 
 ------------
-$ export GIT_TR2_PERF=~/log.perf
+$ export GIT_TRACE2_PERF=~/log.perf
 $ git version
 git version 2.20.1.155.g426c96fcdb
 ------------
@@ -104,14 +104,14 @@ $ cat ~/log.perf
 === The Event Format Target
 
 The event format target is a JSON-based format of event data suitable
-for telemetry analysis.  This format is enabled with the `GIT_TR2_EVENT`
+for telemetry analysis.  This format is enabled with the `GIT_TRACE2_EVENT`
 environment variable or the `trace2.eventTarget` system or global config
 setting.
 
 For example
 
 ------------
-$ export GIT_TR2_EVENT=~/log.event
+$ export GIT_TRACE2_EVENT=~/log.event
 $ git version
 git version 2.20.1.155.g426c96fcdb
 ------------
@@ -273,7 +273,7 @@ significantly affects program performance or behavior, such as
 	Emits a "def_param" messages for "important" configuration
 	settings.
 +
-The environment variable `GIT_TR2_CONFIG_PARAMS` or the `trace2.configParams`
+The environment variable `GIT_TRACE2_CONFIG_PARAMS` or the `trace2.configParams`
 config value can be set to a
 list of patterns of important configuration settings, for example:
 `core.*,remote.*.url`.  This function will iterate over all config
@@ -465,7 +465,7 @@ Events are written as lines of the form:
 Note that this may contain embedded LF or CRLF characters that are
 not escaped, so the event may spill across multiple lines.
 
-If `GIT_TR2_BRIEF` or `trace2.normalBrief` is true, the `time`, `filename`,
+If `GIT_TRACE2_BRIEF` or `trace2.normalBrief` is true, the `time`, `filename`,
 and `line` fields are omitted.
 
 This target is intended to be more of a summary (like GIT_TRACE) and
@@ -533,7 +533,7 @@ This field is in anticipation of in-proc submodules in the future.
 15:33:33.532712 wt-status.c:2331                  | d0 | main                     | region_leave | r1  |  0.127568 |  0.001504 | status     | label:print
 ------------
 
-If `GIT_TR2_PERF_BRIEF` or `trace2.perfBrief` is true, the `time`, `file`,
+If `GIT_TRACE2_PERF_BRIEF` or `trace2.perfBrief` is true, the `time`, `file`,
 and `line` fields are omitted.
 
 ------------
@@ -598,7 +598,7 @@ The following key/value pairs are common to all events:
 `"repo":<repo-id>`::
 	when present, is the integer repo-id as described previously.
 
-If `GIT_TR2_EVENT_BRIEF` or `trace2.eventBrief` is true, the `file`
+If `GIT_TRACE2_EVENT_BRIEF` or `trace2.eventBrief` is true, the `file`
 and `line` fields are omitted from all events and the `time` field is
 only present on the "start" and "atexit" events.
 
@@ -911,7 +911,7 @@ visited.
 The `category` field may be used in a future enhancement to
 do category-based filtering.
 +
-`GIT_TR2_EVENT_NESTING` or `trace2.eventNesting` can be used to
+`GIT_TRACE2_EVENT_NESTING` or `trace2.eventNesting` can be used to
 filter deeply nested regions and data events.  It defaults to "2".
 
 `"region_leave"`::
@@ -1039,8 +1039,8 @@ rev-list, and gc.  This example also shows that fetch took
 5.199 seconds and of that 4.932 was in ssh.
 +
 ----------------
-$ export GIT_TR2_BRIEF=1
-$ export GIT_TR2=~/log.normal
+$ export GIT_TRACE2_BRIEF=1
+$ export GIT_TRACE2=~/log.normal
 $ git fetch origin
 ...
 ----------------
@@ -1075,8 +1075,8 @@ its name as "gc", it also reports the hierarchy as "fetch/gc".
 indented for clarity.)
 +
 ----------------
-$ export GIT_TR2_BRIEF=1
-$ export GIT_TR2=~/log.normal
+$ export GIT_TRACE2_BRIEF=1
+$ export GIT_TRACE2=~/log.normal
 $ git fetch origin
 ...
 ----------------
@@ -1134,8 +1134,8 @@ In this example, scanning for untracked files ran from +0.012568 to
 +0.027149 (since the process started) and took 0.014581 seconds.
 +
 ----------------
-$ export GIT_TR2_PERF_BRIEF=1
-$ export GIT_TR2_PERF=~/log.perf
+$ export GIT_TRACE2_PERF_BRIEF=1
+$ export GIT_TRACE2_PERF=~/log.perf
 $ git status
 ...
 
@@ -1180,8 +1180,8 @@ static enum path_treatment read_directory_recursive(struct dir_struct *dir,
 We can further investigate the time spent scanning for untracked files.
 +
 ----------------
-$ export GIT_TR2_PERF_BRIEF=1
-$ export GIT_TR2_PERF=~/log.perf
+$ export GIT_TRACE2_PERF_BRIEF=1
+$ export GIT_TRACE2_PERF=~/log.perf
 $ git status
 ...
 $ cat ~/log.perf
@@ -1236,8 +1236,8 @@ int read_index_from(struct index_state *istate, const char *path,
 This example shows that the index contained 3552 entries.
 +
 ----------------
-$ export GIT_TR2_PERF_BRIEF=1
-$ export GIT_TR2_PERF=~/log.perf
+$ export GIT_TRACE2_PERF_BRIEF=1
+$ export GIT_TRACE2_PERF=~/log.perf
 $ git status
 ...
 $ cat ~/log.perf
@@ -1310,8 +1310,8 @@ Data events are tagged with the active thread name.  They are used
 to report the per-thread parameters.
 +
 ----------------
-$ export GIT_TR2_PERF_BRIEF=1
-$ export GIT_TR2_PERF=~/log.perf
+$ export GIT_TRACE2_PERF_BRIEF=1
+$ export GIT_TRACE2_PERF=~/log.perf
 $ git status
 ...
 $ cat ~/log.perf
diff --git a/t/t0001-init.sh b/t/t0001-init.sh
index 1f462204ea..77a224aafb 100755
--- a/t/t0001-init.sh
+++ b/t/t0001-init.sh
@@ -93,7 +93,7 @@ test_expect_success 'No extra GIT_* on alias scripts' '
 		sed -n \
 			-e "/^GIT_PREFIX=/d" \
 			-e "/^GIT_TEXTDOMAINDIR=/d" \
-			-e "/^GIT_TR2_PARENT/d" \
+			-e "/^GIT_TRACE2_PARENT/d" \
 			-e "/^GIT_/s/=.*//p" |
 		sort
 	EOF
diff --git a/t/t0210-trace2-normal.sh b/t/t0210-trace2-normal.sh
index 71194a3623..ce7574edb1 100755
--- a/t/t0210-trace2-normal.sh
+++ b/t/t0210-trace2-normal.sh
@@ -4,9 +4,9 @@ test_description='test trace2 facility (normal target)'
 . ./test-lib.sh
 
 # Turn off any inherited trace2 settings for this test.
-sane_unset GIT_TR2 GIT_TR2_PERF GIT_TR2_EVENT
-sane_unset GIT_TR2_BRIEF
-sane_unset GIT_TR2_CONFIG_PARAMS
+sane_unset GIT_TRACE2 GIT_TRACE2_PERF GIT_TRACE2_EVENT
+sane_unset GIT_TRACE2_BRIEF
+sane_unset GIT_TRACE2_CONFIG_PARAMS
 
 # Add t/helper directory to PATH so that we can use a relative
 # path to run nested instances of test-tool.exe (see 004child).
@@ -27,12 +27,12 @@ V=$(git version | sed -e 's/^git version //') && export V
 # to whatever filtering that target decides to do).
 # This script tests the normal target in isolation.
 #
-# Defer setting GIT_TR2 until the actual command line we want to test
+# Defer setting GIT_TRACE2 until the actual command line we want to test
 # because hidden git and test-tool commands run by the test harness
 # can contaminate our output.
 
 # Enable "brief" feature which turns off "<clock> <file>:<line> " prefix.
-GIT_TR2_BRIEF=1 && export GIT_TR2_BRIEF
+GIT_TRACE2_BRIEF=1 && export GIT_TRACE2_BRIEF
 
 # Basic tests of the trace2 normal stream.  Since this stream is used
 # primarily with printf-style debugging/tracing, we do limited testing
@@ -54,7 +54,7 @@ GIT_TR2_BRIEF=1 && export GIT_TR2_BRIEF
 
 test_expect_success 'normal stream, return code 0' '
 	test_when_finished "rm trace.normal actual expect" &&
-	GIT_TR2="$(pwd)/trace.normal" test-tool trace2 001return 0 &&
+	GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 001return 0 &&
 	perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
 	cat >expect <<-EOF &&
 		version $V
@@ -68,7 +68,7 @@ test_expect_success 'normal stream, return code 0' '
 
 test_expect_success 'normal stream, return code 1' '
 	test_when_finished "rm trace.normal actual expect" &&
-	test_must_fail env GIT_TR2="$(pwd)/trace.normal" test-tool trace2 001return 1 &&
+	test_must_fail env GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 001return 1 &&
 	perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
 	cat >expect <<-EOF &&
 		version $V
@@ -83,7 +83,7 @@ test_expect_success 'normal stream, return code 1' '
 test_expect_success 'automatic filename' '
 	test_when_finished "rm -r traces actual expect" &&
 	mkdir traces &&
-	GIT_TR2="$(pwd)/traces" test-tool trace2 001return 0 &&
+	GIT_TRACE2="$(pwd)/traces" test-tool trace2 001return 0 &&
 	perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <"$(ls traces/*)" >actual &&
 	cat >expect <<-EOF &&
 		version $V
@@ -101,7 +101,7 @@ test_expect_success 'automatic filename' '
 
 test_expect_success 'normal stream, exit code 0' '
 	test_when_finished "rm trace.normal actual expect" &&
-	GIT_TR2="$(pwd)/trace.normal" test-tool trace2 002exit 0 &&
+	GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 002exit 0 &&
 	perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
 	cat >expect <<-EOF &&
 		version $V
@@ -115,7 +115,7 @@ test_expect_success 'normal stream, exit code 0' '
 
 test_expect_success 'normal stream, exit code 1' '
 	test_when_finished "rm trace.normal actual expect" &&
-	test_must_fail env GIT_TR2="$(pwd)/trace.normal" test-tool trace2 002exit 1 &&
+	test_must_fail env GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 002exit 1 &&
 	perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
 	cat >expect <<-EOF &&
 		version $V
@@ -133,7 +133,7 @@ test_expect_success 'normal stream, exit code 1' '
 
 test_expect_success 'normal stream, error event' '
 	test_when_finished "rm trace.normal actual expect" &&
-	GIT_TR2="$(pwd)/trace.normal" test-tool trace2 003error "hello world" "this is a test" &&
+	GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 003error "hello world" "this is a test" &&
 	perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
 	cat >expect <<-EOF &&
 		version $V
@@ -147,7 +147,7 @@ test_expect_success 'normal stream, error event' '
 	test_cmp expect actual
 '
 
-sane_unset GIT_TR2_BRIEF
+sane_unset GIT_TRACE2_BRIEF
 
 # Now test without environment variables and get all Trace2 settings
 # from the global config.
diff --git a/t/t0211-trace2-perf.sh b/t/t0211-trace2-perf.sh
index b501e867af..2c3ad6e8c1 100755
--- a/t/t0211-trace2-perf.sh
+++ b/t/t0211-trace2-perf.sh
@@ -4,9 +4,9 @@ test_description='test trace2 facility (perf target)'
 . ./test-lib.sh
 
 # Turn off any inherited trace2 settings for this test.
-sane_unset GIT_TR2 GIT_TR2_PERF GIT_TR2_EVENT
-sane_unset GIT_TR2_PERF_BRIEF
-sane_unset GIT_TR2_CONFIG_PARAMS
+sane_unset GIT_TRACE2 GIT_TRACE2_PERF GIT_TRACE2_EVENT
+sane_unset GIT_TRACE2_PERF_BRIEF
+sane_unset GIT_TRACE2_CONFIG_PARAMS
 
 # Add t/helper directory to PATH so that we can use a relative
 # path to run nested instances of test-tool.exe (see 004child).
@@ -27,13 +27,13 @@ V=$(git version | sed -e 's/^git version //') && export V
 # to whatever filtering that target decides to do).
 # Test each target independently.
 #
-# Defer setting GIT_TR2_PERF until the actual command we want to
+# Defer setting GIT_TRACE2_PERF until the actual command we want to
 # test because hidden git and test-tool commands in the test
 # harness can contaminate our output.
 
 # Enable "brief" feature which turns off the prefix:
 #     "<clock> <file>:<line> | <nr_parents> | "
-GIT_TR2_PERF_BRIEF=1 && export GIT_TR2_PERF_BRIEF
+GIT_TRACE2_PERF_BRIEF=1 && export GIT_TRACE2_PERF_BRIEF
 
 # Repeat some of the t0210 tests using the perf target stream instead of
 # the normal stream.
@@ -46,7 +46,7 @@ GIT_TR2_PERF_BRIEF=1 && export GIT_TR2_PERF_BRIEF
 
 test_expect_success 'perf stream, return code 0' '
 	test_when_finished "rm trace.perf actual expect" &&
-	GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 0 &&
+	GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 0 &&
 	perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
 	cat >expect <<-EOF &&
 		d0|main|version|||||$V
@@ -60,7 +60,7 @@ test_expect_success 'perf stream, return code 0' '
 
 test_expect_success 'perf stream, return code 1' '
 	test_when_finished "rm trace.perf actual expect" &&
-	test_must_fail env GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 1 &&
+	test_must_fail env GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 1 &&
 	perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
 	cat >expect <<-EOF &&
 		d0|main|version|||||$V
@@ -78,7 +78,7 @@ test_expect_success 'perf stream, return code 1' '
 
 test_expect_success 'perf stream, error event' '
 	test_when_finished "rm trace.perf actual expect" &&
-	GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 003error "hello world" "this is a test" &&
+	GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 003error "hello world" "this is a test" &&
 	perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
 	cat >expect <<-EOF &&
 		d0|main|version|||||$V
@@ -124,7 +124,7 @@ test_expect_success 'perf stream, error event' '
 
 test_expect_success 'perf stream, child processes' '
 	test_when_finished "rm trace.perf actual expect" &&
-	GIT_TR2_PERF="$(pwd)/trace.perf" test-tool trace2 004child test-tool trace2 004child test-tool trace2 001return 0 &&
+	GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 004child test-tool trace2 004child test-tool trace2 001return 0 &&
 	perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
 	cat >expect <<-EOF &&
 		d0|main|version|||||$V
@@ -150,7 +150,7 @@ test_expect_success 'perf stream, child processes' '
 	test_cmp expect actual
 '
 
-sane_unset GIT_TR2_PERF_BRIEF
+sane_unset GIT_TRACE2_PERF_BRIEF
 
 # Now test without environment variables and get all Trace2 settings
 # from the global config.
diff --git a/t/t0212-trace2-event.sh b/t/t0212-trace2-event.sh
index 59adae8123..ff5b9cc729 100755
--- a/t/t0212-trace2-event.sh
+++ b/t/t0212-trace2-event.sh
@@ -4,9 +4,9 @@ test_description='test trace2 facility'
 . ./test-lib.sh
 
 # Turn off any inherited trace2 settings for this test.
-sane_unset GIT_TR2 GIT_TR2_PERF GIT_TR2_EVENT
-sane_unset GIT_TR2_BARE
-sane_unset GIT_TR2_CONFIG_PARAMS
+sane_unset GIT_TRACE2 GIT_TRACE2_PERF GIT_TRACE2_EVENT
+sane_unset GIT_TRACE2_BARE
+sane_unset GIT_TRACE2_CONFIG_PARAMS
 
 perl -MJSON::PP -e 0 >/dev/null 2>&1 && test_set_prereq JSON_PP
 
@@ -29,7 +29,7 @@ V=$(git version | sed -e 's/^git version //') && export V
 # to whatever filtering that target decides to do).
 # Test each target independently.
 #
-# Defer setting GIT_TR2_PERF until the actual command we want to
+# Defer setting GIT_TRACE2_PERF until the actual command we want to
 # test because hidden git and test-tool commands in the test
 # harness can contaminate our output.
 
@@ -42,7 +42,7 @@ V=$(git version | sed -e 's/^git version //') && export V
 
 test_expect_success JSON_PP 'event stream, error event' '
 	test_when_finished "rm trace.event actual expect" &&
-	GIT_TR2_EVENT="$(pwd)/trace.event" test-tool trace2 003error "hello world" "this is a test" &&
+	GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool trace2 003error "hello world" "this is a test" &&
 	perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
 	sed -e "s/^|//" >expect <<-EOF &&
 	|VAR1 = {
@@ -79,7 +79,7 @@ test_expect_success JSON_PP 'event stream, error event' '
 
 test_expect_success JSON_PP 'event stream, return code 0' '
 	test_when_finished "rm trace.event actual expect" &&
-	GIT_TR2_EVENT="$(pwd)/trace.event" test-tool trace2 004child test-tool trace2 004child test-tool trace2 001return 0 &&
+	GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool trace2 004child test-tool trace2 004child test-tool trace2 001return 0 &&
 	perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
 	sed -e "s/^|//" >expect <<-EOF &&
 	|VAR1 = {
@@ -168,7 +168,7 @@ test_expect_success JSON_PP 'event stream, list config' '
 	test_when_finished "rm trace.event actual expect" &&
 	git config --local t0212.abc 1 &&
 	git config --local t0212.def "hello world" &&
-	GIT_TR2_EVENT="$(pwd)/trace.event" GIT_TR2_CONFIG_PARAMS="t0212.*" test-tool trace2 001return 0 &&
+	GIT_TRACE2_EVENT="$(pwd)/trace.event" GIT_TRACE2_CONFIG_PARAMS="t0212.*" test-tool trace2 001return 0 &&
 	perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
 	sed -e "s/^|//" >expect <<-EOF &&
 	|VAR1 = {
@@ -201,7 +201,7 @@ test_expect_success JSON_PP 'event stream, list config' '
 
 test_expect_success JSON_PP 'basic trace2_data' '
 	test_when_finished "rm trace.event actual expect" &&
-	GIT_TR2_EVENT="$(pwd)/trace.event" test-tool trace2 006data test_category k1 v1 test_category k2 v2 &&
+	GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool trace2 006data test_category k1 v1 test_category k2 v2 &&
 	perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
 	sed -e "s/^|//" >expect <<-EOF &&
 	|VAR1 = {
diff --git a/t/t0212/parse_events.perl b/t/t0212/parse_events.perl
index a2776ba216..6584bb5634 100644
--- a/t/t0212/parse_events.perl
+++ b/t/t0212/parse_events.perl
@@ -26,7 +26,7 @@
 
 # The version of the trace2 event target format that we understand.
 # This is reported in the 'version' event in the 'evt' field.
-# It comes from the GIT_TR2_EVENT_VERSION macro in trace2/tr2_tgt_event.c
+# It comes from the GIT_TRACE2_EVENT_VERSION macro in trace2/tr2_tgt_event.c
 my $evt_version = '1';
 
 my $show_children = 1;
diff --git a/trace2.h b/trace2.h
index f189ef5984..050bf3c8c1 100644
--- a/trace2.h
+++ b/trace2.h
@@ -130,7 +130,7 @@ void trace2_cmd_alias_fl(const char *file, int line, const char *alias,
  * list of patterns configured important.  For example:
  *     git config --system trace2.configParams 'core.*,remote.*.url'
  * or:
- *     GIT_TR2_CONFIG_PARAMS=core.*,remote.*.url"
+ *     GIT_TRACE2_CONFIG_PARAMS=core.*,remote.*.url"
  *
  * Note: this routine does a read-only iteration on the config data
  * (using read_early_config()), so it must not be called until enough
diff --git a/trace2/tr2_cmd_name.c b/trace2/tr2_cmd_name.c
index e999592b4c..dd313204f5 100644
--- a/trace2/tr2_cmd_name.c
+++ b/trace2/tr2_cmd_name.c
@@ -1,7 +1,7 @@
 #include "cache.h"
 #include "trace2/tr2_cmd_name.h"
 
-#define TR2_ENVVAR_PARENT_NAME "GIT_TR2_PARENT_NAME"
+#define TR2_ENVVAR_PARENT_NAME "GIT_TRACE2_PARENT_NAME"
 
 static struct strbuf tr2cmdname_hierarchy = STRBUF_INIT;
 
diff --git a/trace2/tr2_sid.c b/trace2/tr2_sid.c
index 5047095478..6948fd4108 100644
--- a/trace2/tr2_sid.c
+++ b/trace2/tr2_sid.c
@@ -2,7 +2,7 @@
 #include "trace2/tr2_tbuf.h"
 #include "trace2/tr2_sid.h"
 
-#define TR2_ENVVAR_PARENT_SID "GIT_TR2_PARENT_SID"
+#define TR2_ENVVAR_PARENT_SID "GIT_TRACE2_PARENT_SID"
 
 static struct strbuf tr2sid_buf = STRBUF_INIT;
 static int tr2sid_nr_git_parents;
diff --git a/trace2/tr2_sysenv.c b/trace2/tr2_sysenv.c
index 9025b86303..5958cfc424 100644
--- a/trace2/tr2_sysenv.c
+++ b/trace2/tr2_sysenv.c
@@ -21,33 +21,33 @@ struct tr2_sysenv_entry {
  * The strings in this table are constant and must match the published
  * config and environment variable names as described in the documentation.
  *
- * We do not define entries for the GIT_TR2_PARENT_* environment
+ * We do not define entries for the GIT_TRACE2_PARENT_* environment
  * variables because they are transient and used to pass information
  * from parent to child git processes, rather than settings.
  */
 /* clang-format off */
 static struct tr2_sysenv_entry tr2_sysenv_settings[] = {
-	[TR2_SYSENV_CFG_PARAM]     = { "GIT_TR2_CONFIG_PARAMS",
+	[TR2_SYSENV_CFG_PARAM]     = { "GIT_TRACE2_CONFIG_PARAMS",
 				       "trace2.configparams" },
 
-	[TR2_SYSENV_DST_DEBUG]     = { "GIT_TR2_DST_DEBUG",
+	[TR2_SYSENV_DST_DEBUG]     = { "GIT_TRACE2_DST_DEBUG",
 				       "trace2.destinationdebug" },
 
-	[TR2_SYSENV_NORMAL]        = { "GIT_TR2",
+	[TR2_SYSENV_NORMAL]        = { "GIT_TRACE2",
 				       "trace2.normaltarget" },
-	[TR2_SYSENV_NORMAL_BRIEF]  = { "GIT_TR2_BRIEF",
+	[TR2_SYSENV_NORMAL_BRIEF]  = { "GIT_TRACE2_BRIEF",
 				       "trace2.normalbrief" },
 
-	[TR2_SYSENV_EVENT]         = { "GIT_TR2_EVENT",
+	[TR2_SYSENV_EVENT]         = { "GIT_TRACE2_EVENT",
 				       "trace2.eventtarget" },
-	[TR2_SYSENV_EVENT_BRIEF]   = { "GIT_TR2_EVENT_BRIEF",
+	[TR2_SYSENV_EVENT_BRIEF]   = { "GIT_TRACE2_EVENT_BRIEF",
 				       "trace2.eventbrief" },
-	[TR2_SYSENV_EVENT_NESTING] = { "GIT_TR2_EVENT_NESTING",
+	[TR2_SYSENV_EVENT_NESTING] = { "GIT_TRACE2_EVENT_NESTING",
 				       "trace2.eventnesting" },
 
-	[TR2_SYSENV_PERF]          = { "GIT_TR2_PERF",
+	[TR2_SYSENV_PERF]          = { "GIT_TRACE2_PERF",
 				       "trace2.perftarget" },
-	[TR2_SYSENV_PERF_BRIEF]    = { "GIT_TR2_PERF_BRIEF",
+	[TR2_SYSENV_PERF_BRIEF]    = { "GIT_TRACE2_PERF_BRIEF",
 				       "trace2.perfbrief" },
 };
 /* clang-format on */
diff --git a/trace2/tr2_sysenv.h b/trace2/tr2_sysenv.h
index 369b20bd87..8dd82a7a56 100644
--- a/trace2/tr2_sysenv.h
+++ b/trace2/tr2_sysenv.h
@@ -7,7 +7,7 @@
  *
  * Note that this set does not contain any of the transient
  * environment variables used to pass information from parent
- * to child git processes, such "GIT_TR2_PARENT_SID".
+ * to child git processes, such "GIT_TRACE2_PARENT_SID".
  */
 enum tr2_sysenv_variable {
 	TR2_SYSENV_CFG_PARAM = 0,
-- 
2.22.0.rc1.424.g15834b9bb1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 2/2] trace2: document the supported values of GIT_TRACE2* env variables
  2019-05-19 14:43     ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* SZEDER Gábor
@ 2019-05-19 14:43       ` SZEDER Gábor
  2019-05-28 16:25       ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* Junio C Hamano
                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 13+ messages in thread
From: SZEDER Gábor @ 2019-05-19 14:43 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Derrick Stolee, git, git, SZEDER Gábor

The descriptions of the GIT_TRACE2* environment variables link to the
technical docs for further details on the supported values.  However,
a link like this only really works if the docs are viewed in a browser
and the full documentation is available.  OTOH, in 'man git' there are
no links to conveniently click on, and distro-shipped git packages
tend to include only the man pages, while the technical docs and the
docs in html format are in a separate 'git-doc' package.

So let's describe the supported values to make the manpage more
self-contained, but still keep the references to the technical docs
because the details of the SID, and the JSON and perf output formats
are definitely beyond the scope of 'man git'.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---
 Documentation/git.txt | 43 +++++++++++++++++++++++++++++++++++--------
 1 file changed, 35 insertions(+), 8 deletions(-)

diff --git a/Documentation/git.txt b/Documentation/git.txt
index fcf81e3acf..6ddc1e2ca6 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -665,21 +665,48 @@ of clones and fetches.
 	Output from `GIT_TRACE2` is a simple text-based format for human
 	readability.
 +
-The `GIT_TRACE2` variables can take many values. Any value available to
-the `GIT_TRACE` variables is also available to `GIT_TRACE2`. The `GIT_TRACE2`
-variables can also specify a Unix Domain Socket. See
-link:technical/api-trace2.html[Trace2 documentation] for full details.
+If this variable is set to "1", "2" or "true" (comparison
+is case insensitive), trace messages will be printed to
+stderr.
++
+If the variable is set to an integer value greater than 2
+and lower than 10 (strictly) then Git will interpret this
+value as an open file descriptor and will try to write the
+trace messages into this file descriptor.
++
+Alternatively, if the variable is set to an absolute path
+(starting with a '/' character), Git will interpret this
+as a file path and will try to append the trace messages
+to it.  If the path already exists and is a directory, the
+trace messages will be written to files (one per process)
+in that directory, named according to the last component
+of the SID and an optional counter (to avoid filename
+collisions).
++
+In addition, if the variable is set to
+`af_unix:[<socket_type>:]<absolute-pathname>`, Git will try
+to open the path as a Unix Domain Socket.  The socket type
+can be either `stream` or `dgram`.
++
+Unsetting the variable, or setting it to empty, "0" or
+"false" (case insensitive) disables trace messages.
++
+See link:technical/api-trace2.html[Trace2 documentation]
+for full details.
+
 
 `GIT_TRACE2_EVENT`::
 	This setting writes a JSON-based format that is suited for machine
-	interpretation. See link:technical/api-trace2.html[Trace2 documentation]
-	for full details.
+	interpretation.
+	See `GIT_TRACE2` for available trace output options and
+	link:technical/api-trace2.html[Trace2 documentation] for full details.
 
 `GIT_TRACE2_PERF`::
 	In addition to the text-based messages available in `GIT_TRACE2`, this
 	setting writes a column-based format for understanding nesting
-	regions. See link:technical/api-trace2.html[Trace2 documentation]
-	for full details.
+	regions.
+	See `GIT_TRACE2` for available trace output options and
+	link:technical/api-trace2.html[Trace2 documentation] for full details.
 
 `GIT_REDACT_COOKIES`::
 	This can be set to a comma-separated list of strings. When a curl trace
-- 
2.22.0.rc1.424.g15834b9bb1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2*
  2019-05-19 14:43     ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* SZEDER Gábor
  2019-05-19 14:43       ` [PATCH 2/2] trace2: document the supported values of GIT_TRACE2* env variables SZEDER Gábor
@ 2019-05-28 16:25       ` Junio C Hamano
  2019-05-28 16:46         ` Derrick Stolee
  2019-05-28 23:02       ` Ævar Arnfjörð Bjarmason
  2019-06-12 14:29       ` [PATCH] Revert "test-lib: whitelist GIT_TR2_* in the environment" Ævar Arnfjörð Bjarmason
  3 siblings, 1 reply; 13+ messages in thread
From: Junio C Hamano @ 2019-05-28 16:25 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: Derrick Stolee, git, git

SZEDER Gábor <szeder.dev@gmail.com> writes:

> For an environment variable that is supposed to be set by users, the
> GIT_TR2* env vars are just too unclear, inconsistent, and ugly.

FWIW, I personally am in favor of this change and would prefer to see
this done before the use of the names with unguessable abbreviation
gets ingrained too deeply.  

I do not see any objections around these two patches after waiting
for a week or so, but I do not see any Yay!s, either, so ...

> OTOH, we don't gain anything at all by omitting the last three
> characters of "trace" from the names of these environment variables.
>
> So let's rename all GIT_TR2* environment variables to GIT_TRACE2*,
> before they make their way into a stable release.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2*
  2019-05-28 16:25       ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* Junio C Hamano
@ 2019-05-28 16:46         ` Derrick Stolee
  2019-05-29 19:52           ` Jeff Hostetler
  0 siblings, 1 reply; 13+ messages in thread
From: Derrick Stolee @ 2019-05-28 16:46 UTC (permalink / raw)
  To: Junio C Hamano, SZEDER Gábor; +Cc: Derrick Stolee, git, git

On 5/28/2019 12:25 PM, Junio C Hamano wrote:
> SZEDER Gábor <szeder.dev@gmail.com> writes:
> 
>> For an environment variable that is supposed to be set by users, the
>> GIT_TR2* env vars are just too unclear, inconsistent, and ugly.
> 
> FWIW, I personally am in favor of this change and would prefer to see
> this done before the use of the names with unguessable abbreviation
> gets ingrained too deeply.  
> 
> I do not see any objections around these two patches after waiting
> for a week or so, but I do not see any Yay!s, either, so ...

Talking with Jeff offline, we have no objections to the new names.

We'll need to do some follow-up work on our side as we update our
version of Git, but that's not an issue.

Thanks,
-Stolee


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2*
  2019-05-19 14:43     ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* SZEDER Gábor
  2019-05-19 14:43       ` [PATCH 2/2] trace2: document the supported values of GIT_TRACE2* env variables SZEDER Gábor
  2019-05-28 16:25       ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* Junio C Hamano
@ 2019-05-28 23:02       ` Ævar Arnfjörð Bjarmason
  2019-05-29 19:58         ` Jeff Hostetler
  2019-06-12 14:29       ` [PATCH] Revert "test-lib: whitelist GIT_TR2_* in the environment" Ævar Arnfjörð Bjarmason
  3 siblings, 1 reply; 13+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2019-05-28 23:02 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: Junio C Hamano, Derrick Stolee, git, git


On Sun, May 19 2019, SZEDER Gábor wrote:

> For an environment variable that is supposed to be set by users, the
> GIT_TR2* env vars are just too unclear, inconsistent, and ugly.
>
> Most of the established GIT_* environment variables don't use
> abbreviations, and in case of the few that do (GIT_DIR,
> GIT_COMMON_DIR, GIT_DIFF_OPTS) it's quite obvious what the
> abbreviations (DIR and OPTS) stand for.  But what does TR stand for?
> Track, traditional, trailer, transaction, transfer, transformation,
> transition, translation, transplant, transport, traversal, tree,
> trigger, truncate, trust, or ...?!
>
> The trace2 facility, as the '2' suffix in its name suggests, is
> supposed to eventually supercede Git's original trace facility.  It's
> reasonable to expect that the corresponding environment variables
> follow suit, and after the original GIT_TRACE variables they are
> called GIT_TRACE2; there is no such thing is 'GIT_TR'.
>
> All trace2-specific config variables are, very sensibly, in the
> 'trace2' section, not in 'tr2'.
>
> OTOH, we don't gain anything at all by omitting the last three
> characters of "trace" from the names of these environment variables.
>
> So let's rename all GIT_TR2* environment variables to GIT_TRACE2*,
> before they make their way into a stable release.

Good to see this land in 2.22.0. I wonder if we shouldn't take this
further and rename trace2.* config to trace.*, and just re-use
GIT_TRACE=1 instead of having GIT_TRACE2 as well, and have a
GIT_TRACE_VERSION to switch between them.

Then we could just switch in a future version. We've never promised what
the trace format was going to look like, and the existing one isn't
configurable (and we won't be making the v1 one...), so starting from
the outset with "2" in config is unfortunate.

We'd still have special snowflakes like e.g. GIT_TRACE_PACKET.

OTOH we can just do this after the release if it's deemed a good idea,
and just support trace2.* as aliases for trace.* for some amount of
time, same for the env vars.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2*
  2019-05-28 16:46         ` Derrick Stolee
@ 2019-05-29 19:52           ` Jeff Hostetler
  0 siblings, 0 replies; 13+ messages in thread
From: Jeff Hostetler @ 2019-05-29 19:52 UTC (permalink / raw)
  To: Derrick Stolee, Junio C Hamano, SZEDER Gábor; +Cc: Derrick Stolee, git



On 5/28/2019 12:46 PM, Derrick Stolee wrote:
> On 5/28/2019 12:25 PM, Junio C Hamano wrote:
>> SZEDER Gábor <szeder.dev@gmail.com> writes:
>>
>>> For an environment variable that is supposed to be set by users, the
>>> GIT_TR2* env vars are just too unclear, inconsistent, and ugly.
>>
>> FWIW, I personally am in favor of this change and would prefer to see
>> this done before the use of the names with unguessable abbreviation
>> gets ingrained too deeply.
>>
>> I do not see any objections around these two patches after waiting
>> for a week or so, but I do not see any Yay!s, either, so ...
> 
> Talking with Jeff offline, we have no objections to the new names.
> 
> We'll need to do some follow-up work on our side as we update our
> version of Git, but that's not an issue.
> 
> Thanks,
> -Stolee
> 


Just to close the loop.  Yes, I'm OK with changing the names.

Jeff

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2*
  2019-05-28 23:02       ` Ævar Arnfjörð Bjarmason
@ 2019-05-29 19:58         ` Jeff Hostetler
  2019-05-29 21:45           ` Junio C Hamano
  0 siblings, 1 reply; 13+ messages in thread
From: Jeff Hostetler @ 2019-05-29 19:58 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason, SZEDER Gábor
  Cc: Junio C Hamano, Derrick Stolee, git



On 5/28/2019 7:02 PM, Ævar Arnfjörð Bjarmason wrote:
> 
> On Sun, May 19 2019, SZEDER Gábor wrote:
> 
>> For an environment variable that is supposed to be set by users, the
>> GIT_TR2* env vars are just too unclear, inconsistent, and ugly.
>>
>> Most of the established GIT_* environment variables don't use
>> abbreviations, and in case of the few that do (GIT_DIR,
>> GIT_COMMON_DIR, GIT_DIFF_OPTS) it's quite obvious what the
>> abbreviations (DIR and OPTS) stand for.  But what does TR stand for?
>> Track, traditional, trailer, transaction, transfer, transformation,
>> transition, translation, transplant, transport, traversal, tree,
>> trigger, truncate, trust, or ...?!
>>
>> The trace2 facility, as the '2' suffix in its name suggests, is
>> supposed to eventually supercede Git's original trace facility.  It's
>> reasonable to expect that the corresponding environment variables
>> follow suit, and after the original GIT_TRACE variables they are
>> called GIT_TRACE2; there is no such thing is 'GIT_TR'.
>>
>> All trace2-specific config variables are, very sensibly, in the
>> 'trace2' section, not in 'tr2'.
>>
>> OTOH, we don't gain anything at all by omitting the last three
>> characters of "trace" from the names of these environment variables.
>>
>> So let's rename all GIT_TR2* environment variables to GIT_TRACE2*,
>> before they make their way into a stable release.
> 
> Good to see this land in 2.22.0. I wonder if we shouldn't take this
> further and rename trace2.* config to trace.*, and just re-use
> GIT_TRACE=1 instead of having GIT_TRACE2 as well, and have a
> GIT_TRACE_VERSION to switch between them.
> 
> Then we could just switch in a future version. We've never promised what
> the trace format was going to look like, and the existing one isn't
> configurable (and we won't be making the v1 one...), so starting from
> the outset with "2" in config is unfortunate.
> 
> We'd still have special snowflakes like e.g. GIT_TRACE_PACKET.
> 
> OTOH we can just do this after the release if it's deemed a good idea,
> and just support trace2.* as aliases for trace.* for some amount of
> time, same for the env vars.
> 

I'm open to considering such a change while we're at it.

Jeff

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2*
  2019-05-29 19:58         ` Jeff Hostetler
@ 2019-05-29 21:45           ` Junio C Hamano
  0 siblings, 0 replies; 13+ messages in thread
From: Junio C Hamano @ 2019-05-29 21:45 UTC (permalink / raw)
  To: Jeff Hostetler
  Cc: Ævar Arnfjörð Bjarmason, SZEDER Gábor,
	Derrick Stolee, git

Jeff Hostetler <git@jeffhostetler.com> writes:

> On 5/28/2019 7:02 PM, Ævar Arnfjörð Bjarmason wrote:
>>
>> On Sun, May 19 2019, SZEDER Gábor wrote:
>> ...
>>> So let's rename all GIT_TR2* environment variables to GIT_TRACE2*,
>>> before they make their way into a stable release.
>>
>> Good to see this land in 2.22.0. I wonder if we shouldn't take this
>> further and rename trace2.* config to trace.*, and just re-use
>> GIT_TRACE=1 instead of having GIT_TRACE2 as well, and have a
>> GIT_TRACE_VERSION to switch between them.
>>
>> Then we could just switch in a future version. We've never promised what
>> the trace format was going to look like, and the existing one isn't
>> configurable (and we won't be making the v1 one...), so starting from
>> the outset with "2" in config is unfortunate.
>>
>> We'd still have special snowflakes like e.g. GIT_TRACE_PACKET.
>>
>> OTOH we can just do this after the release if it's deemed a good idea,
>> and just support trace2.* as aliases for trace.* for some amount of
>> time, same for the env vars.
>
> I'm open to considering such a change while we're at it.

I'm a bit against "while we're at it" part.  Let's take the
s/TR2/TRACE2/ change and stop at it for the upcoming release,
without spending too much time on over-engineering the stuff that
are primarily for developers.

Thanks.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH] Revert "test-lib: whitelist GIT_TR2_* in the environment"
  2019-05-19 14:43     ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* SZEDER Gábor
                         ` (2 preceding siblings ...)
  2019-05-28 23:02       ` Ævar Arnfjörð Bjarmason
@ 2019-06-12 14:29       ` Ævar Arnfjörð Bjarmason
  2019-06-12 17:49         ` Junio C Hamano
  3 siblings, 1 reply; 13+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2019-06-12 14:29 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, SZEDER Gábor,
	Ævar Arnfjörð Bjarmason

This reverts my commit c1ee5796dc ("test-lib: whitelist GIT_TR2_* in
the environment", 2019-03-30), which is now redundant.

Since e4b75d6a1d ("trace2: rename environment variables to
GIT_TRACE2*", 2019-05-19) the GIT_TRACE2* variables match the existing
GIT_TRACE* pattern added in 95a1d12e9b ("tests: scrub environment of
GIT_* variables", 2011-03-15), so we no longer need to list TR2 here.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 t/test-lib.sh | 1 -
 1 file changed, 1 deletion(-)

diff --git a/t/test-lib.sh b/t/test-lib.sh
index 599fd70e14..57f7c30377 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -386,7 +386,6 @@ unset VISUAL EMAIL LANGUAGE COLUMNS $("$PERL_PATH" -e '
 	my @env = keys %ENV;
 	my $ok = join("|", qw(
 		TRACE
-		TR2_
 		DEBUG
 		TEST
 		.*_TEST
-- 
2.22.0.rc1.257.g3120a18244


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Revert "test-lib: whitelist GIT_TR2_* in the environment"
  2019-06-12 14:29       ` [PATCH] Revert "test-lib: whitelist GIT_TR2_* in the environment" Ævar Arnfjörð Bjarmason
@ 2019-06-12 17:49         ` Junio C Hamano
  0 siblings, 0 replies; 13+ messages in thread
From: Junio C Hamano @ 2019-06-12 17:49 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason; +Cc: git, SZEDER Gábor

Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:

> This reverts my commit c1ee5796dc ("test-lib: whitelist GIT_TR2_* in
> the environment", 2019-03-30), which is now redundant.
>
> Since e4b75d6a1d ("trace2: rename environment variables to
> GIT_TRACE2*", 2019-05-19) the GIT_TRACE2* variables match the existing
> GIT_TRACE* pattern added in 95a1d12e9b ("tests: scrub environment of
> GIT_* variables", 2011-03-15), so we no longer need to list TR2 here.

Yeah, makes sense.  Thanks.


>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>  t/test-lib.sh | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index 599fd70e14..57f7c30377 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -386,7 +386,6 @@ unset VISUAL EMAIL LANGUAGE COLUMNS $("$PERL_PATH" -e '
>  	my @env = keys %ENV;
>  	my $ok = join("|", qw(
>  		TRACE
> -		TR2_
>  		DEBUG
>  		TEST
>  		.*_TEST

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, back to index

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-10 19:44 [PATCH 0/1] trace2: Add variable description to git.txt Derrick Stolee via GitGitGadget
2019-05-10 19:44 ` [PATCH 1/1] " Derrick Stolee via GitGitGadget
2019-05-10 21:15   ` SZEDER Gábor
2019-05-19 14:43     ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* SZEDER Gábor
2019-05-19 14:43       ` [PATCH 2/2] trace2: document the supported values of GIT_TRACE2* env variables SZEDER Gábor
2019-05-28 16:25       ` [PATCH 1/2] trace2: rename environment variables to GIT_TRACE2* Junio C Hamano
2019-05-28 16:46         ` Derrick Stolee
2019-05-29 19:52           ` Jeff Hostetler
2019-05-28 23:02       ` Ævar Arnfjörð Bjarmason
2019-05-29 19:58         ` Jeff Hostetler
2019-05-29 21:45           ` Junio C Hamano
2019-06-12 14:29       ` [PATCH] Revert "test-lib: whitelist GIT_TR2_* in the environment" Ævar Arnfjörð Bjarmason
2019-06-12 17:49         ` Junio C Hamano

git@vger.kernel.org list mirror (unofficial, one of many)

Archives are clonable:
	git clone --mirror https://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
	nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
	nntp://news.gmane.org/gmane.comp.version-control.git

 note: .onion URLs require Tor: https://www.torproject.org/

AGPL code for this site: git clone https://public-inbox.org/ public-inbox