Thread (185 messages) 185 messages, 9 authors, 2022-12-15

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help