Re: [PATCH v6 00/13] Rewrite the remaining merge strategies from shell to C
- From
Derrick Stolee <stolee@gmail.com>
- Date
- Jan 5, 2021, 16:50 UTC
- Message-ID
- <25a92f4c-1d7e-45bb-0a05-2f82586867ad@gmail.com>
- In-Reply-To
- <20201124115315.13311-1-alban.gruin@gmail.com>
On 11/24/2020 6:53 AM, 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 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