On 08/07/2024 11:34, Antonin Delpeuch via GitGitGadget wrote:
introducing an argument to 'merge_recursive_config' to prevent only the newly added diff.algorithm to be read by plumbing commands feels like muddying the architecture, as this function should likely not be called at all by plumbing commands.
I have second thoughts about this, perhaps it is possible to refactor things a bit further, imitating diff.c which has "git_diff_ui_config" and "git_diff_basic_config". In a similar way, we could have "init_merge_ui_options" and "init_merge_basic_options" which the commands could call depending on whether they are porcelain or plumbing. This would make it easier to remove the current dependencies of plumbing commands on some config variables classified as UI. I'll have a try. Best, Antonin