git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: rpjday@crashcourse.ca
Cc: git@vger.kernel.org
Subject: Re: couple questions about git "logical variables" and "git var"
Date: Thu, 5 Oct 2017 05:56:36 -0400	[thread overview]
Message-ID: <20171005095636.mpp2ohf7vp7mtzeb@sigill.intra.peff.net> (raw)
In-Reply-To: <20171005051104.Horde.8J0J7-XC6jD4AOgtYrou3Na@crashcourse.ca>

On Thu, Oct 05, 2017 at 05:11:04AM -0400, rpjday@crashcourse.ca 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
possible variables.

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:
> 
> "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."
> 
> 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
consistent.

-Peff

  reply	other threads:[~2017-10-05  9:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-05  9:11 couple questions about git "logical variables" and "git var" rpjday
2017-10-05  9:56 ` Jeff King [this message]
2017-10-06  2:35   ` Jonathan Nieder
2017-10-06  4:33     ` Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171005095636.mpp2ohf7vp7mtzeb@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=rpjday@crashcourse.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).