diff options
| author | Patrick Steinhardt <ps@pks.im> | 2026-02-19 07:25:29 +0100 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2026-02-19 10:22:30 -0800 |
| commit | 01b7be0d20afc9ac392d4b3906e471dea63df38d (patch) | |
| tree | 6b8e36951cf758b8293ccd7137ce8b947854f2d2 /contrib/persistent-https | |
| parent | 3141df7ec44f5f2579fd839a6b5a457df109c5e6 (diff) | |
| download | git-01b7be0d20afc9ac392d4b3906e471dea63df38d.tar.gz git-01b7be0d20afc9ac392d4b3906e471dea63df38d.zip | |
meson: fix MERGE_TOOL_DIR with "--no-bin-wrappers"
On Windows, we execute tests with "--no-bin-wrappers". This has been
introduced via a87e427e35 (ci: speed up Windows phase, 2019-01-29) to
save some time: spawning processes is expensive on Windows, and shell
scripts tend to spawn a bunch of them. So overall, the bin-wrappers led
to a performance overhead of ~10-30%.
This causes test failures when using Meson on Windows:
failure: t7610.28 mergetool --tool-help shows recognized tools
++ git mergetool --tool-help
/d/a/git/git/build/git-mergetool--lib: line 45: cd: D:/a/git/git/build/mergetools: No such file or directory
The root cause here is that our bin-wrappers are usually responsible for
setting up the `MERGE_TOOL_DIR` environment variable so that we can
locate these scripts. But as we don't use the bin-wrappers, we'll
instead use the default location for merge tools, which is derived from
`GIT_EXEC_PATH`. And as `GIT_EXEC_PATH` points to our build directory,
which won't ever contain any of the merge tools, we will fail to locate
any of the merge tools.
This issue has went unnoticed for a long time given that we only skip
bin-wrappers on Windows, and because the CI jobs on Windows didn't
execute due to a bug.
Fix the issue by always setting the `MERGE_TOOL_DIR` environment
variable to the correct directory.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/persistent-https')
0 files changed, 0 insertions, 0 deletions
