Run as if git was started in '<path>' instead of the current working
directory. When multiple `-C` options are given, each subsequent
non-absolute `-C <path>` is interpreted relative to the preceding `-C
- <path>`.
+ <path>`. If '<path>' is present but empty, e.g. `-C ""`, then the
+ current working directory is left unchanged.
+
This option affects options that expect path name like `--git-dir` and
`--work-tree` in that their interpretations of the path names would be
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`
-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_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.
+ interpretation.
+ See `GIT_TRACE2` for available trace output options and
+ 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.
+ 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