Re: [PATCH] t: avoid git config syntax from newer releases
- From
Justin Tobler <jltobler@gmail.com>
- Date
- Jul 9, 2025, 14:30 UTC
- Message-ID
- <iuravzuqoqagie37is72e773zufuxcedwnc4i6ehhklpszg25t@bzu66havljcq>
- In-Reply-To
- <20250708210529.1214574-1-tmz@pobox.com>
On 25/07/08 05:05PM, Todd Zullinger wrote:
Show 14 quoted lines
> In a recent security release, 05e9cd64ee (config: quote values > containing CR character, 2025-05-19) added calls to `git config get`, > `git config set`, and `git config unset` which are not present on the > maint-2.43 branch. > > These subcommands were added in the following commits, released in > git-2.46.0: > > 4e51389000 (builtin/config: introduce "get" subcommand, 2024-05-06), > 00bbdde141 (builtin/config: introduce "set" subcommand, 2024-05-06), > 95ea69c67b (builtin/config: introduce "unset" subcommand, 2024-05-06) > > Revert to the previous `git config` syntax for older maintenance > branches.
Thanks for raising this fix! Apologies, it slipped my mind that the config subsommands wouldn't be available on older versions.
The changes here look good to me. :)
-Justin
Show 48 quoted lines
>
> Signed-off-by: Todd Zullinger <tmz@pobox.com>
> ---
>
> This is based on maint-2.43. I tested that it merges cleanly to 2.44 and 2.45.
> I have only run a build with 2.45.4 so far. I pushed this to a github fork,
> which looks like it will run the CI for each branch:
>
> https://github.com/tmzullinger/git/actions
>
> t/t1300-config.sh | 4 ++--
> t/t7450-bad-git-dotfiles.sh | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/t/t1300-config.sh b/t/t1300-config.sh
> index 1010410b7e..baf9b48231 100755
> --- a/t/t1300-config.sh
> +++ b/t/t1300-config.sh
> @@ -2595,8 +2595,8 @@ test_expect_success 'writing value with trailing CR not stripped on read' '
>
> printf "bar\r\n" >expect &&
> git init cr-test &&
> - git -C cr-test config set core.foo $(printf "bar\r") &&
> - git -C cr-test config get core.foo >actual &&
> + git -C cr-test config core.foo $(printf "bar\r") &&
> + git -C cr-test config --get core.foo >actual &&
>
> test_cmp expect actual
> '
> diff --git a/t/t7450-bad-git-dotfiles.sh b/t/t7450-bad-git-dotfiles.sh
> index 2026285566..d1546e3311 100755
> --- a/t/t7450-bad-git-dotfiles.sh
> +++ b/t/t7450-bad-git-dotfiles.sh
> @@ -362,10 +362,10 @@ test_expect_success SYMLINKS,!WINDOWS,!MINGW 'submodule must not checkout into d
> git -C repo mv sub $(printf "sub\r") &&
>
> # Ensure config values containing CR are wrapped in quotes.
> - git config unset -f repo/.gitmodules submodule.sub.path &&
> + git config --unset -f repo/.gitmodules submodule.sub.path &&
> printf "\tpath = \"sub\r\"\n" >>repo/.gitmodules &&
>
> - git config unset -f repo/.git/modules/sub/config core.worktree &&
> + git config --unset -f repo/.git/modules/sub/config core.worktree &&
> {
> printf "[core]\n" &&
> printf "\tworktree = \"../../../sub\r\"\n"
> --
> 2.50.1