Skip to content

pr-814/newren/ort-recursive-v4

This series depends on en/merge-ort-2 (it does NOT depend on en/merge-ort-3
and can thus be reviewed/merged independently of it).

This short series adds handling of recursive merges (merging of multiple
merge-bases to create a virtual merge base) to merge-ort. With this short
series the number of test failures under GIT_TEST_MERGE_ALGORITHM=ort drops
by 801 (from 1448 to 647).

Changes since v3:

 * remove the confusing portions of the merge_incore_recursive() API around
   opt->ancestor that were designed to accommodate merge_recursive_generic()
   or some function like it. If that stuff is really needed, we can add it
   later, but it may be better to simply adjust merge_recursive_generic()
   and/or its callers when we get to that point in the porting process.

Elijah Newren (3):
  merge-ort: copy a few small helper functions from merge-recursive.c
  merge-ort: make clear_internal_opts() aware of partial clearing
  merge-ort: implement merge_incore_recursive()

 merge-ort.c | 132 +++++++++++++++++++++++++++++++++++++++++++++++++---
 merge-ort.h |  10 ++++
 2 files changed, 135 insertions(+), 7 deletions(-)

base-commit: c5a6f65527aa3b6f5d7cf25437a88d8727ab0646

Submitted-As: https://lore.kernel.org/git/pull.814.v4.git.1608150919.gitgitgadget@gmail.com
In-Reply-To: https://lore.kernel.org/git/pull.814.git.1608054807.gitgitgadget@gmail.com
In-Reply-To: https://lore.kernel.org/git/pull.814.v2.git.1608097965.gitgitgadget@gmail.com
In-Reply-To: https://lore.kernel.org/git/pull.814.v3.git.1608139034.gitgitgadget@gmail.com
Assets 2