mirror of
https://github.com/git/git.git
synced 2026-01-09 17:46:37 +00:00
merge-recursive.[ch]: thoroughly debug these
As a wise man once told me, "Deleted code is debugged code!" So, move the functions that are shared between merge-recursive and merge-ort from the former to the latter, and then debug the remainder of merge-recursive.[ch]. Joking aside, merge-ort was always intended to replace merge-recursive. It has numerous advantages over merge-recursive (operates much faster, can operate without a worktree or index, and fixes a number of known bugs and suboptimal merges). Since we have now replaced all callers of merge-recursive with equivalent functions from merge-ort, move the shared functions from the former to the latter, and delete the remainder of merge-recursive.[ch]. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
75cd9ae05f
commit
ad45b327c0
@@ -109,23 +109,11 @@ subtree[=<path>];;
|
||||
two trees to match.
|
||||
|
||||
recursive::
|
||||
This can only resolve two heads using a 3-way merge
|
||||
algorithm. When there is more than one common
|
||||
ancestor that can be used for 3-way merge, it creates a
|
||||
merged tree of the common ancestors and uses that as
|
||||
the reference tree for the 3-way merge. This has been
|
||||
reported to result in fewer merge conflicts without
|
||||
causing mismerges by tests done on actual merge commits
|
||||
taken from Linux 2.6 kernel development history.
|
||||
Additionally this can detect and handle merges involving
|
||||
renames. It does not make use of detected copies. This was
|
||||
the default strategy for resolving two heads from Git v0.99.9k
|
||||
until v2.33.0.
|
||||
+
|
||||
For a path that is a submodule, the same caution as 'ort' applies to this
|
||||
strategy.
|
||||
+
|
||||
The 'recursive' strategy takes the same options as 'ort'.
|
||||
This is now a synonym for `ort`. It was an alternative
|
||||
implementation until v2.49.0, but was redirected to mean `ort`
|
||||
in v2.50.0. The previous recursive strategy was the default
|
||||
strategy for resolving two heads from Git v0.99.9k until
|
||||
v2.33.0.
|
||||
|
||||
resolve::
|
||||
This can only resolve two heads (i.e. the current branch
|
||||
@@ -146,7 +134,7 @@ ours::
|
||||
ignoring all changes from all other branches. It is meant to
|
||||
be used to supersede old development history of side
|
||||
branches. Note that this is different from the -Xours option to
|
||||
the 'recursive' merge strategy.
|
||||
the 'ort' merge strategy.
|
||||
|
||||
subtree::
|
||||
This is a modified `ort` strategy. When merging trees A and
|
||||
|
||||
Reference in New Issue
Block a user