[PATCH 3/7] meson: fix MERGE_TOOL_DIR with "--no-bin-wrappers"
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Feb 11, 2026, 10:34 UTC
- Message-ID
- <20260211-b4-pks-ci-meson-improvements-v1-3-cb167cc80b86@pks.im>
- In-Reply-To
- <20260211-b4-pks-ci-meson-improvements-v1-0-cb167cc80b86@pks.im>
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 directoryThe 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> --- t/meson.build | 1 + 1 file changed, 1 insertion(+)
diff --git a/t/meson.build b/t/meson.build index 19e8306298..5ba7efd603 100644 --- a/t/meson.build +++ b/t/meson.build @@ -1208,6 +1208,7 @@ endif test_environment = script_environment test_environment.set('GIT_BUILD_DIR', git_build_dir) +test_environment.set('MERGE_TOOLS_DIR', meson.project_source_root() / 'mergetools') foreach integration_test : integration_tests test(fs.stem(integration_test), shell,
-- 2.53.0.295.g64333814d3.dirty