Re: [PATCH v6 00/13] Rewrite the remaining merge strategies from shell to C
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Nov 24, 2020, 19:34 UTC
- Message-ID
- <20201124193417.GD8396@szeder.dev>
- In-Reply-To
- <20201124115315.13311-1-alban.gruin@gmail.com>
On Tue, Nov 24, 2020 at 12:53:02PM +0100, Alban Gruin wrote:
Show 12 quoted lines
> 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.