From: "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: gitster@pobox.com, Derrick Stolee <stolee@gmail.com>
Subject: [PATCH 0/3] config: allow disabling config includes
Date: Mon, 08 Jun 2026 13:57:03 +0000 [thread overview]
Message-ID: <pull.2139.git.1780927027.gitgitgadget@gmail.com> (raw)
This series introduces a new way to ignore config include directives via two
mechanisms:
* GIT_CONFIG_INCLUDES=0 in the environment.
* git --no-includes ... in the command line.
My motivation is from a tricky situation where users want to do the risky
thing and include a repo-tracked file for sharing aliases and other
recommended config. They are then struggling in a later build step that is
running Git commands (under a tool we don't control and can't change) that
then cause filesystem accesses outside of the build system's sandbox.
While git config has a --no-includes option, that doesn't impact the
behavior of other Git commands. We build upon that existing logic for
disabling includes, though.
Having had recent luck recommending GIT_ADVICE=0 when running Git commands
from third-party tools, I thought that a similar environment variable to
disable this functionality would be helpful, too.
One thing I do worry about is whether or not this would cause a significant
break in behavior, or if this is a relatively safe thing to allow.
The three patches are organized as follows:
1. Patch 1 has a small typo fix in the config documentation that messes
with the format of the bulleted list. I include it here because I add to
that list in patch 2.
2. Patch 2 adds the environment variable and tests it via 'git config' and
the use of a Git alias.
3. Patch 3 adds the '--no-includes' option at the top level.
Thanks, -Stolee
Derrick Stolee (3):
git-config.adoc: fix paragraph break
config: add GIT_CONFIG_INCLUDES
git: add --no-includes top-level option
Documentation/git-config.adoc | 7 ++++++-
Documentation/git.adoc | 6 +++++-
config.c | 7 ++++++-
environment.h | 6 ++++++
git.c | 6 +++++-
t/t1305-config-include.sh | 35 +++++++++++++++++++++++++++++++++++
6 files changed, 63 insertions(+), 4 deletions(-)
base-commit: 9ac3f193c05c2237e2b14ebaa1149e9fc8a1abe0
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2139%2Fderrickstolee%2Fconfig-include-override-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2139/derrickstolee/config-include-override-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/2139
--
gitgitgadget
next reply other threads:[~2026-06-08 13:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-08 13:57 Derrick Stolee via GitGitGadget [this message]
2026-06-08 13:57 ` [PATCH 1/3] git-config.adoc: fix paragraph break Derrick Stolee via GitGitGadget
2026-06-08 13:57 ` [PATCH 2/3] config: add GIT_CONFIG_INCLUDES Derrick Stolee via GitGitGadget
2026-06-08 14:34 ` Patrick Steinhardt
2026-06-08 19:38 ` Derrick Stolee
2026-06-08 13:57 ` [PATCH 3/3] git: add --no-includes top-level option Derrick Stolee via GitGitGadget
2026-06-08 22:51 ` [PATCH 0/3] config: allow disabling config includes 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.2139.git.1780927027.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=stolee@gmail.com \
/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.