All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Pleeter <andrewpleeter@gmail.com>
To: git@vger.kernel.org
Cc: gitster@pobox.com, phillip.wood@dunelm.org.uk,
	ben.knoble@gmail.com, peff@peff.net,
	sandals@crustytoothpaste.net
Subject: [PATCH v9 0/4] var: -z output, multiple variables, and broken-out idents
Date: Sat, 26 Sep 2026 12:20:44 -0400	[thread overview]
Message-ID: <20260926162048.30853-1-andrewpleeter@gmail.com> (raw)
In-Reply-To: <xmqq33va1lcg.fsf@gitster.g>

This is a reroll of the single patch in v8, split up as Junio asked
for, with the changes Phillip asked for on the list.

v8 was one commit doing four things at once. It is now four patches:

  1/4 converts the internal representation of a multi-valued variable
      from a newline-joined string to a string_list, with no change in
      output. Phillip suggested doing this as its own preparatory step.

  2/4 adds "-z", which is what forces the switch to parse_options(), so
      that conversion lives here rather than in 1/4.

  3/4 teaches "git var" to take more than one variable.

  4/4 adds GIT_AUTHOR_NAME and friends.

Changes since v8:

 * GIT_SIGNING_KEY is dropped. Phillip asked three times how it was
   meant to be used, and once I looked properly the answer was that the
   value cannot be interpreted without also reading gpg.format, and that
   in the default configuration it is a committer ident rather than a
   key at all. I would rather leave it out than define a variable I
   cannot describe. Details are in my reply to him on this thread.

 * Asking for several variables no longer exits non-zero just because
   one of them has no value; such a variable is left out of the output
   and the rest are still shown. A non-zero status is now reserved for
   real errors, such as naming a variable that does not exist, so
   callers can detect those from the exit code. A single variable still
   exits 1 when it has no value, as before. This is Phillip's
   GIT_CONFIG_NOSYSTEM point.

 * GIT_CONFIG_GLOBAL is documented as a variable that can have more than
   one value.

 * The commit messages are prose rather than a list of bullet points,
   and no longer narrate how the patch was developed.

The tests use nul_to_q rather than running test_cmp over files
containing NUL bytes, which Phillip pointed out in v6. Each patch builds
and passes t0007 on its own.

One thing I did not do, and would like an opinion on: for a multi-valued
variable in multi-variable mode, rather than emitting a trailing
delimiter, each value is shown as its own "VARIABLE=value" entry, which
matches "git var -l". Phillip suggested the trailing delimiter and I am
happy to switch.

Andrew Pleeter (4):
  var: represent multi-valued variables with a string_list
  var: add "-z" output mode
  var: accept more than one variable
  var: add broken-out identity variables

 Documentation/git-var.adoc |  68 +++++++++--
 builtin/var.c              | 242 +++++++++++++++++++++++++++++--------
 t/t0007-git-var.sh         | 153 +++++++++++++++++++++++
 3 files changed, 403 insertions(+), 60 deletions(-)

-- 
2.54.0 (Apple Git-157)


  parent reply	other threads:[~2026-09-26 16:20 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-25 20:46 [PATCH] builtin/whoami: add new 'whoami' command Andrew Pleeter via GitGitGadget
2026-08-25 21:24 ` brian m. carlson
2026-08-25 21:41 ` Junio C Hamano
2026-08-31 23:59 ` [PATCH v2] builtin/ident: add new 'ident' command Andrew Pleeter via GitGitGadget
2026-09-01  4:39   ` Jeff King
2026-09-01  5:00     ` Junio C Hamano
2026-09-03  2:49 ` [PATCH v3] var: support broken-down idents, default key, multiple args, and -z Andrew Pleeter via GitGitGadget
2026-09-03 17:40   ` Junio C Hamano
2026-09-03 18:22     ` Ben Knoble
2026-09-04  9:11   ` Phillip Wood
2026-09-04 15:57     ` Junio C Hamano
2026-09-08  9:07       ` Phillip Wood
2026-09-08  4:09 ` [PATCH v4] var: support broken-down idents, signing " Andrew Pleeter via GitGitGadget
2026-09-08 13:54   ` Phillip Wood
2026-09-08 20:43 ` [PATCH v5] " Andrew Pleeter via GitGitGadget
2026-09-08 21:53   ` Junio C Hamano
2026-09-09  1:24 ` [PATCH v6] " Andrew Pleeter via GitGitGadget
2026-09-09 15:36   ` Phillip Wood
2026-09-09 16:42   ` Junio C Hamano
2026-09-10  3:09 ` [PATCH v7] " Andrew Pleeter via GitGitGadget
2026-09-14 19:34   ` Junio C Hamano
2026-09-14 22:50 ` [PATCH v8] " Andrew Pleeter via GitGitGadget
2026-09-15 17:21   ` Junio C Hamano
2026-09-15 22:02     ` Andrew Pleeter
2026-09-22 14:57       ` Phillip Wood
2026-09-26 16:19         ` Andrew Pleeter
2026-09-26 16:20     ` Andrew Pleeter [this message]
2026-10-02 14:11       ` [PATCH v9 0/4] var: -z output, multiple variables, and broken-out idents Phillip Wood
2026-10-02 17:41         ` Andrew Pleeter
2026-09-26 16:20     ` [PATCH v9 1/4] var: represent multi-valued variables with a string_list Andrew Pleeter
2026-09-26 16:20     ` [PATCH v9 2/4] var: add "-z" output mode Andrew Pleeter
2026-09-26 16:20     ` [PATCH v9 3/4] var: accept more than one variable Andrew Pleeter
2026-10-02 14:11       ` Phillip Wood
2026-09-26 16:20     ` [PATCH v9 4/4] var: add broken-out identity variables Andrew Pleeter
2026-10-02 14:11       ` Phillip Wood

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

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

  git send-email \
    --in-reply-to=20260926162048.30853-1-andrewpleeter@gmail.com \
    --to=andrewpleeter@gmail.com \
    --cc=ben.knoble@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=phillip.wood@dunelm.org.uk \
    --cc=sandals@crustytoothpaste.net \
    /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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.