# 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 
- List: git
- Page: https://ratatoskr.run/git/2021/01/7870763
- Thread: https://ratatoskr.run/git/2020/06/7851045/t/2.md

```text
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
```
