Re: [PATCH v6 00/13] Rewrite the remaining merge strategies from shell to C
From: SZEDER Gábor <hidden>
Date: 2020-11-24 19:34:21
On Tue, Nov 24, 2020 at 12:53:02PM +0100, Alban Gruin wrote:
In a effort to reduce the number of shell scripts in git's codebase, I propose this patch series converting the two remaining merge strategies, resolve and octopus, from shell to C. This will enable slightly better performance, better integration with git itself (no more forking to perform these operations), better portability (Windows and shell scripts don't mix well). Three scripts are actually converted: first git-merge-one-file.sh, then git-merge-resolve.sh, and finally git-merge-octopus.sh. Not only they are converted, but they also are modified to operate without forking, and then libified so they can be used by git without spawning another process.
This series is based on 306ee63a70 (Eighteenth batch, 2020-09-29).
This patch series should be based on top of 722fc37491 (help: do not expect built-in commands to be hardlinked, 2020-10-07) (in v2.29.0-rc1), because without the fix in that commit we don't get the list of available merge strategies when building with SKIP_DASHED_BUILT_INS=YesPlease: $ make clean [...] $ SKIP_DASHED_BUILT_INS=YesPlease make [...] $ git merge -s help Could not find merge strategy 'help'. Available strategies are:. Our completion script relies on this to list available strategies, and a test in 't9902-completion.sh' fails without that fix.