Subject: [PATCH v5 0/8] config: allow specifying config entries via env

From: Patrick Steinhardt <[email-masked]>
Date: Wed, 16 Dec 2020 08:52:38 +0100

Hi,

this is the fifth version of my patch series which aims to implement a
way to pass config entries via the environment while avoiding any
requirements to perform shell quoting on the user's side.

Changes in this version include:

    - I've adopted Jeff's patches to make GIT_CONFIG_PARAMETERS more
      robust by using quoting for both key and value of the config
      entry. This allows to store entries which for example have an
      equals sign in their key.

    - I've replaced the documentation of `git --config-env` by Ævar's,
      which was much better.

    - I've amended the documentation of GIT_CONFIG_COUNT to document the
      intended usecase.

The series is structured as following:

    - Patch 1 is a while-at-it patch for the `--super-prefix` usage
      string which was missing in `git --help`.

    - Patch 2 implements `git --config-env`.

    - Patch 3-6 implement robust handling of GIT_CONFIG_PARAMETERS.

    - Patch 7-8 implement GIT_CONFIG_COUNT handling.

As before, if the GIT_CONFIG_COUNT code is unwanted, please feel free to
cut off after the 6th patch.

Patrick

Jeff King (3):
  quote: make sq_dequote_step() a public function
  config: store "git -c" variables using more robust format
  config: parse more robust format in GIT_CONFIG_PARAMETERS

Patrick Steinhardt (5):
  git: add `--super-prefix` to usage string
  config: add new way to pass config via `--config-env`
  config: extract function to parse config pairs
  environment: make `getenv_safe()` a public function
  config: allow specifying config entries via envvar pairs

 Documentation/git-config.txt |  16 +++
 Documentation/git.txt        |  23 +++-
 cache.h                      |   1 +
 config.c                     | 205 ++++++++++++++++++++++++++++----
 config.h                     |   1 +
 environment.c                |   8 +-
 environment.h                |  12 ++
 git.c                        |   3 +
 quote.c                      |  15 ++-
 quote.h                      |  18 ++-
 t/t1300-config.sh            | 220 ++++++++++++++++++++++++++++++++++-
 11 files changed, 483 insertions(+), 39 deletions(-)
 create mode 100644 environment.h

-- 
2.29.2