merge-tree: add option parsing and initial shell for real merge function
commit6ec755a0e152dfb0ed6bffa70b511c45a1f29ebd
authorElijah Newren <newren@gmail.com>
Sat, 18 Jun 2022 00:20:46 +0000 (18 00:20 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 22 Jun 2022 23:10:05 +0000 (22 16:10 -0700)
tree86d8e2658d2e90582899f40151b06541ff049ede
parent55e48f6bf76f9038eef1a6926533a7c30a53c923
merge-tree: add option parsing and initial shell for real merge function

Let merge-tree accept a `--write-tree` parameter for choosing real
merges instead of trivial merges, and accept an optional
`--trivial-merge` option to get the traditional behavior.  Note that
these accept different numbers of arguments, though, so these names
need not actually be used.

Note that real merges differ from trivial merges in that they handle:
  - three way content merges
  - recursive ancestor consolidation
  - renames
  - proper directory/file conflict handling
  - etc.
Basically all the stuff you'd expect from `git merge`, just without
updating the index and working tree.  The initial shell added here does
nothing more than die with "real merges are not yet implemented", but
that will be fixed in subsequent commits.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/merge-tree.c
git.c