Subject: Re: [PATCH v6 00/13] Rewrite the remaining merge strategies from shell to C

From: SZEDER Gábor <[email-masked]>
Date: Tue, 24 Nov 2020 20:34:17 +0100

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.