Re: couple questions about git "logical variables" and "git var"
- Date: Thu, 5 Oct 2017 05:56:36 -0400
- From: Jeff King <peff@xxxxxxxx>
- Subject: Re: couple questions about git "logical variables" and "git var"
On Thu, Oct 05, 2017 at 05:11:04AM -0400, rpjday@xxxxxxxxxxxxxx wrote:
> i just ran across "git var" for the first time, and it seems a bit weird.
> it refers to the (apparently) four git "logical variables":
It's definitely weird.
> - GIT_AUTHOR_IDENT
> - GIT_COMMITTER_IDENT
> - GIT_EDITOR
> - GIT_PAGER
> first question -- what is it about precisely those four variables that makes
> them "logical" variables in git parlance? just those four? no others?
It was introduced in the very early days as a way for scripts to get
access to "standard" values that would be computed the same way as the C
portions of Git. But it hasn't generally been kept up to date with new
It also only tells half the story. You have to know not just what's in
$GIT_EDITOR, but you have to know the right way to evaluate it. There's
a git_editor helper in git-sh-setup, but other scripting languages are
on their own. We'd probably have done better to introduce a "git editor"
command which can be run from any language.
But as most of Git is written in C these days, it seems that nobody had
enough interest to smooth out these kinds of rough edges.
> also, the man page "man git-var" seems wrong:
> Cause the logical variables to be listed. In addition, all the variables
> of the Git configuration file .git/config are listed as well."
> no, if i run "git var -l", i see not only the logical variables, but i
> see *all* of the available config settings (system and global), not just
> those in .git/config (unless i'm misreading what that is supposed to mean).
Yes, I agree the description there is wrong. I'd have to dig in the
history to be sure, but I'm pretty sure it has _always_ been wrong.
> p.s. yes, i realize this command is deprecated in favour of "git config -l",
> but as long as it's available, it should work as described in the man page.
Yes, though I think fixing the manpage is the right way to make them