Git development
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org,  Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: Re: [PATCH v2 01/17] t0001: allow implicit bare repo discovery for aliased-command test
Date: Mon, 06 Apr 2026 09:00:10 -0700	[thread overview]
Message-ID: <xmqqse98cc51.fsf@gitster.g> (raw)
In-Reply-To: <a1cdbd58f0af27be689230b7d8009d93bc34abca.1775332197.git.gitgitgadget@gmail.com> (Johannes Schindelin via GitGitGadget's message of "Sat, 04 Apr 2026 19:49:41 +0000")

"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
writes:

> From: Johannes Schindelin <johannes.schindelin@gmx.de>
>
> 8d1a7448206e (setup.c: create `safe.bareRepository`, 2022-07-14)
> introduced a setting to restrict implicit bare repository discovery,
> mitigating a social-engineering attack where an embedded bare repo's
> hooks get executed unknowingly. To allow for that default to change at
> some stage in the future, the tests need to be prepared.
>
> This commit adjusts a test accordingly that runs `git aliasedinit`
> from inside a bare repo to verify that aliased commands work there.
> The test is about alias resolution, not bare repo discovery, so add
> `test_config_global safe.bareRepository all` to opt in explicitly.

Yes, I think most of the tests we run things in a bare repository is
not about bare repository discovery but how individual commands
behave in a bare repository, and these commands must be kept working
even after a future version of Git starts to tighten the rules.

> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
>  t/t0001-init.sh | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/t/t0001-init.sh b/t/t0001-init.sh
> index e4d32bb4d2..6bd0a15dac 100755
> --- a/t/t0001-init.sh
> +++ b/t/t0001-init.sh
> @@ -77,6 +77,7 @@ test_expect_success 'plain nested through aliased command' '
>  '
>  
>  test_expect_success 'plain nested in bare through aliased command' '
> +	test_config_global safe.bareRepository all &&
>  	(
>  		git init --bare bare-ancestor-aliased.git &&
>  		cd bare-ancestor-aliased.git &&

So I very much recommend the use of "safe.bareRepository all" in
these tests, not in individual test but upfront, just like many
tests freeze use of 'main' as the default initial branch name.

I also have to wonder if this alternative patch shouldn't be a
better starting point?  The idea is that most of the tests that
validates how individual operations work in a bare repository are
*not* interested in the fact that bare repository access will become
opt-in in future version of Git, but they are interested in ensuring
that the commands they are testing will keep working as expected
when accesses to bare repositories are allowed.  So we'll run all
existing tests with this in the global config after we set up $HOME
for testing.  We'll need to write a very few *new* tests to prepare
for the default change, and I expect them to explicitly remove the
setting from the global config, and checks if the default truly
allows or forbids access to a bare repositories.  But I am hoping
that most of the existing tests shouldn't need changes sprinkled all
over.

Thanks.

 t/test-lib.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git c/t/test-lib.sh w/t/test-lib.sh
index 70fd3e9baf..fe85a0bf89 100644
--- c/t/test-lib.sh
+++ w/t/test-lib.sh
@@ -1563,6 +1563,11 @@ HOME="$TRASH_DIRECTORY"
 GNUPGHOME="$HOME/gnupg-home-not-used"
 export HOME GNUPGHOME USER_HOME
 
+if test -n "$WITH_BREAKING_CHANGES"
+then
+	git config --global safe.bareRepository all
+fi
+
 # "rm -rf" existing trash directory, even if a previous run left it
 # with bad permissions.
 remove_trash_directory () {

  reply	other threads:[~2026-04-06 16:00 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-02 14:33 [PATCH 00/17] tests: access bare repositories explicitly Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 01/17] t0001: allow implicit bare repo discovery for aliased-command test Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 02/17] t0001: replace `cd`+`git` with `git --git-dir` in `check_config` Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 03/17] t0003: use `--git-dir` for bare repo attribute tests Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 04/17] t0056: allow implicit bare repo discovery for `-C` work-tree tests Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 05/17] t1020: use `--git-dir` instead of subshell for bare repo Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 06/17] t1900: avoid using `-C <dir>` for a bare repository Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 07/17] t2400: explicitly specify bare repo for `git worktree add` Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 08/17] t2406: use `--git-dir=.` for bare repository worktree repair Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 09/17] t5503: avoid discovering a bare repository Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 10/17] t5505: export `GIT_DIR` after `git init --bare` Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 11/17] t5509: specify bare repository path explicitly Johannes Schindelin via GitGitGadget
2026-04-02 20:44   ` Junio C Hamano
2026-04-03 14:22     ` Johannes Schindelin
2026-04-03 18:17       ` Junio C Hamano
2026-04-04 19:29         ` Johannes Schindelin
2026-04-02 14:33 ` [PATCH 12/17] t5540/t5541: avoid accessing a bare repository via `-C <dir>` Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 13/17] t5619: wrap `test_commit_bulk` in `GIT_DIR` subshell for bare repo Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 14/17] t6020: use `-C` for worktree, `--git-dir` for bare repository Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 15/17] t9210: pass `safe.bareRepository=all` to `scalar register` Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 16/17] t9700: stop relying on implicit bare repo discovery Johannes Schindelin via GitGitGadget
2026-04-02 14:33 ` [PATCH 17/17] git p4 clone --bare: need to be explicit about the gitdir Johannes Schindelin via GitGitGadget
2026-04-02 18:15 ` [PATCH 00/17] tests: access bare repositories explicitly Junio C Hamano
2026-04-04 19:45   ` Johannes Schindelin
2026-04-06 15:45     ` Junio C Hamano
2026-04-04 19:49 ` [PATCH v2 " Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 01/17] t0001: allow implicit bare repo discovery for aliased-command test Johannes Schindelin via GitGitGadget
2026-04-06 16:00     ` Junio C Hamano [this message]
2026-04-04 19:49   ` [PATCH v2 02/17] t0001: replace `cd`+`git` with `git --git-dir` in `check_config` Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 03/17] t0003: use `--git-dir` for bare repo attribute tests Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 04/17] t0056: allow implicit bare repo discovery for `-C` work-tree tests Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 05/17] t1020: use `--git-dir` instead of subshell for bare repo Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 06/17] t1900: avoid using `-C <dir>` for a bare repository Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 07/17] t2400: explicitly specify bare repo for `git worktree add` Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 08/17] t2406: use `--git-dir=.` for bare repository worktree repair Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 09/17] t5503: avoid discovering a bare repository Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 10/17] t5505: export `GIT_DIR` after `git init --bare` Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 11/17] t5509: specify bare repository path explicitly Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 12/17] t5540/t5541: avoid accessing a bare repository via `-C <dir>` Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 13/17] t5619: wrap `test_commit_bulk` in `GIT_DIR` subshell for bare repo Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 14/17] t6020: use `-C` for worktree, `--git-dir` for bare repository Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 15/17] t9210: pass `safe.bareRepository=all` to `scalar register` Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 16/17] t9700: stop relying on implicit bare repo discovery Johannes Schindelin via GitGitGadget
2026-04-04 19:49   ` [PATCH v2 17/17] git p4 clone --bare: need to be explicit about the gitdir Johannes Schindelin via GitGitGadget

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=xmqqse98cc51.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=johannes.schindelin@gmx.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox