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: Derrick Stolee <hidden>
Date: 2021-01-05 16:50:56

On 11/24/2020 6:53 AM, 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 is a worthwhile effort. Of course, I wasn't familiar with this
area and only took interest when I started working in a conflicting
area.

I did my best in reviewing the content here. I did not comment further
on the patches where Junio already gave extensive review.
This series keeps the commands `git merge-one-file', `git
merge-resolve', and `git merge-octopus', so any script depending on them
should keep working without any changes.
I pointed out some questions about the "dashed versus non-dashed"
forms.
This series is based on 306ee63a70 (Eighteenth batch, 2020-09-29).  The
tip is tagged as "rewrite-merge-strategies-v6" at
https://github.com/agrn/git.
Please also base onto 722fc37491 (help: do not expect built-in
commands to be hardlinked, 2020-10-07) as requested by Szeder.

Thanks,
-Stolee
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help