git/Documentation/git-var.txt
brian m. carlson 576a37fccb var: add attributes files locations
Currently, there are some programs which would like to read and parse
the gitattributes files at the global or system levels.  However, it's
not always obvious where these files live, especially for the system
file, which may have been hard-coded at compile time or computed
dynamically based on the runtime prefix.

It's not reasonable to expect all callers of Git to intuitively know
where the Git distributor or user has configured these locations to
be, so add some entries to allow us to determine their location.  Honor
the GIT_ATTR_NOSYSTEM environment variable if one is specified.  Expose
the accessor functions in a way that we can reuse them from within the
var code.

In order to make our paths consistent on Windows and also use the same
form as paths use in "git rev-parse", let's normalize the path before we
return it.  This results in Windows-style paths that use slashes, which
is convenient for making our tests function in a consistent way across
platforms.  Note that this requires that some of our values be freed, so
let's add a flag about whether the value needs to be freed and use it
accordingly.

Signed-off-by: brian m. carlson <bk2204@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-06-27 11:31:06 -07:00

92 lines
2.6 KiB
Plaintext

git-var(1)
==========
NAME
----
git-var - Show a Git logical variable
SYNOPSIS
--------
[verse]
'git var' (-l | <variable>)
DESCRIPTION
-----------
Prints a Git logical variable. Exits with code 1 if the variable has
no value.
OPTIONS
-------
-l::
Cause the logical variables to be listed. In addition, all the
variables of the Git configuration file .git/config are listed
as well. (However, the configuration variables listing functionality
is deprecated in favor of `git config -l`.)
EXAMPLES
--------
$ git var GIT_AUTHOR_IDENT
Eric W. Biederman <ebiederm@lnxi.com> 1121223278 -0600
VARIABLES
---------
GIT_AUTHOR_IDENT::
The author of a piece of code.
GIT_COMMITTER_IDENT::
The person who put a piece of code into Git.
GIT_EDITOR::
Text editor for use by Git commands. The value is meant to be
interpreted by the shell when it is used. Examples: `~/bin/vi`,
`$SOME_ENVIRONMENT_VARIABLE`, `"C:\Program Files\Vim\gvim.exe"
--nofork`. The order of preference is the `$GIT_EDITOR`
environment variable, then `core.editor` configuration, then
`$VISUAL`, then `$EDITOR`, and then the default chosen at compile
time, which is usually 'vi'.
ifdef::git-default-editor[]
The build you are using chose '{git-default-editor}' as the default.
endif::git-default-editor[]
GIT_SEQUENCE_EDITOR::
Text editor used to edit the 'todo' file while running `git rebase
-i`. Like `GIT_EDITOR`, the value is meant to be interpreted by
the shell when it is used. The order of preference is the
`$GIT_SEQUENCE_EDITOR` environment variable, then
`sequence.editor` configuration, and then the value of `git var
GIT_EDITOR`.
GIT_PAGER::
Text viewer for use by Git commands (e.g., 'less'). The value
is meant to be interpreted by the shell. The order of preference
is the `$GIT_PAGER` environment variable, then `core.pager`
configuration, then `$PAGER`, and then the default chosen at
compile time (usually 'less').
ifdef::git-default-pager[]
The build you are using chose '{git-default-pager}' as the default.
endif::git-default-pager[]
GIT_DEFAULT_BRANCH::
The name of the first branch created in newly initialized repositories.
GIT_SHELL_PATH::
The path of the binary providing the POSIX shell for commands which use the shell.
GIT_ATTR_SYSTEM::
The path to the system linkgit:gitattributes[5] file, if one is enabled.
GIT_ATTR_GLOBAL::
The path to the global (per-user) linkgit:gitattributes[5] file.
SEE ALSO
--------
linkgit:git-commit-tree[1]
linkgit:git-tag[1]
linkgit:git-config[1]
GIT
---
Part of the linkgit:git[1] suite