Re: [PATCH v5 0/2] includeIf: add "worktree" condition for matching working tree path
- From
Chen Linxuan <me@black-desk.cn>
- Date
- May 25, 2026, 09:00 UTC
- Message-ID
- <CAC1kPDPbyxs-aTrAOi_PNTZF7EApG31iLYwm+Eddpeh2hT8a-w@mail.gmail.com>
- In-Reply-To
- <xmqqjysseyid.fsf@gitster.g>
On Mon, May 25, 2026 at 3:31 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 14 quoted lines
> > Chen Linxuan via B4 Relay <devnull+me.black-desk.cn@kernel.org> > writes: > > > Changes in v5: > > - Fix Windows CI failure: use `**` glob pattern instead of `/` in the > > "worktree without repository" tests, since `/` as a path pattern is > > Unix-specific and does not match Windows paths. > > Would it have worked if you used something like "[/\\].path", > instead of "/.path", to cover directory delimiters for both systems? > > I am not asking to make further changes. I am trying to understand > what the extent of the problem was.
The root cause is that on Windows, strbuf_realpath() returns paths with a drive letter prefix (e.g. D:/a/git/...), which does not start with /.
Here is the trace output from the Windows CI [1]:
include_by_path: text='D:/a/git/git/t/trash directory.t1305-config-include', pattern='/**', prefix=0
The pattern worktree:/ becomes /** after add_trailing_starstar_for_dir(). Then wildmatch("/**", "D:/a/git/...", WM_PATHNAME) fails because the text does not start with /.
[1] https://github.com/black-desk/git/actions/runs/26391768962/job/77683708185