aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/merge-strategies.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/merge-strategies.adoc')
-rw-r--r--Documentation/merge-strategies.adoc51
1 files changed, 20 insertions, 31 deletions
diff --git a/Documentation/merge-strategies.adoc b/Documentation/merge-strategies.adoc
index 59f5ae36cc..9e034f447e 100644
--- a/Documentation/merge-strategies.adoc
+++ b/Documentation/merge-strategies.adoc
@@ -87,44 +87,33 @@ no-renames;;
configuration variable.
See also linkgit:git-diff[1] `--no-renames`.
-subtree[=<path>];;
- This option is a more advanced form of 'subtree' strategy, where
- the strategy makes a guess on how two trees must be shifted to
- match with each other when merging. Instead, the specified path
- is prefixed (or stripped from the beginning) to make the shape of
- 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'. However,
-there are two additional options that 'ort' ignores (not documented
-above) that are potentially useful with the 'recursive' strategy:
+histogram;;
+ Deprecated synonym for `diff-algorithm=histogram`.
patience;;
Deprecated synonym for `diff-algorithm=patience`.
-diff-algorithm=[patience|minimal|histogram|myers];;
+diff-algorithm=[histogram|minimal|myers|patience];;
Use a different diff algorithm while merging, which can help
avoid mismerges that occur due to unimportant matching lines
(such as braces from distinct functions). See also
linkgit:git-diff[1] `--diff-algorithm`. Note that `ort`
- specifically uses `diff-algorithm=histogram`, while `recursive`
- defaults to the `diff.algorithm` config setting.
+ defaults to `diff-algorithm=histogram`, while regular diffs
+ currently default to the `diff.algorithm` config setting.
+
+subtree[=<path>];;
+ This option is a more advanced form of 'subtree' strategy, where
+ the strategy makes a guess on how two trees must be shifted to
+ match with each other when merging. Instead, the specified path
+ is prefixed (or stripped from the beginning) to make the shape of
+ two trees to match.
+
+recursive::
+ 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
@@ -145,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