This enables the user to set a couple of additional options for merge. 1. merge.aggressive - this is to try to resolve a few more trivial merge cases. It is documented in read-tree and is not something you can pass into merge itself. 2. merge.renames - this is to save git from having to go through the entire 3 trees to see if there were any renames that happened. For the work item repro that I have been using this drops the merge time from ~1 hour to ~5 minutes and the unmerged entries goes down from ~40,000 to 1. Helped-by: Kevin Willford <kewillf@xxxxxxxxxxxxx> Reviewed-by: Johannes Schindelin <johannes.schindelin@xxxxxx> Signed-off-by: Ben Peart <Ben.Peart@xxxxxxxxxxxxx> Base Ref: master Web-Diff: https://github.com/benpeart/git/commit/a3d157f5be Checkout: git fetch https://github.com/benpeart/git merge-options-v1 && git checkout a3d157f5be Ben Peart (2): merge: Add merge.renames config setting merge: Add merge.aggressive config setting Documentation/merge-config.txt | 9 +++++++++ merge-recursive.c | 2 ++ 2 files changed, 11 insertions(+) base-commit: 0b0cc9f86731f894cff8dd25299a9b38c254569e -- 2.17.0.windows.1