Re: [PATCH v6 2/2] config: add "worktree" and "worktree/i" includeIf conditions
From: Patrick Steinhardt <hidden>
Date: 2026-07-03 11:03:06
On Fri, Jul 03, 2026 at 11:13:18AM +0800, Chen Linxuan via B4 Relay wrote:
quoted hunk ↗ jump to hunk
diff --git a/t/t1305-config-include.sh b/t/t1305-config-include.sh index f3892578e4ff..4e840dfdb35b 100755 --- a/t/t1305-config-include.sh +++ b/t/t1305-config-include.sh@@ -396,4 +396,132 @@ test_expect_success 'onbranch without repository but explicit nonexistent Git di
[snip]
+test_expect_success SYMLINKS 'conditional include, worktree resolves symlinks' ' + mkdir real-wt && + ln -s real-wt link-wt && + git init link-wt/repo && + ( + cd link-wt/repo && + # repo->worktree resolves symlinks, so use real path in pattern + echo "[includeIf \"worktree:**/real-wt/repo\"]path=bar-link" >>.git/config && + echo "[test]wtlink=2" >.git/bar-link && + echo 2 >expect && + git config test.wtlink >actual && + test_cmp expect actual + ) +'
Okay, this covers one scenario. But with "gitdir:" we're actually able
to use both the symlinked and the real location:
test_expect_success SYMLINKS 'conditional include, worktree matching symlink' '
mkdir sym-real &&
ln -s sym-real sym-link &&
git init sym-link/repo &&
(
cd sym-link/repo &&
link_path="$(pwd)" &&
real_path="$(test-tool path-utils real_path "$link_path")" &&
cat >>.git/config <<-EOF &&
[includeIf "gitdir:$link_path/.git"]
path = gitdir-link
[includeIf "gitdir:$real_path/.git"]
path = gitdir-real
[includeIf "worktree:$link_path"]
path = worktree-link
[includeIf "worktree:$real_path"]
path = worktree-real
EOF
echo "[test]gitdirlink=1" >.git/gitdir-link &&
echo "[test]gitdirreal=1" >.git/gitdir-real &&
echo "[test]worktreelink=1" >.git/worktree-link &&
echo "[test]worktreereal=1" >.git/worktree-real &&
git config get test.gitdirlink &&
git config get test.gitdirreal &&
git config get test.worktreereal &&
test_must_fail git config test.worktreelink
)
'
The last call to git-config(1) fails, which is inconsistent with how
resolve the path for "gitdir".
Other than that I didn't have anything to add, thanks!
Patrick