summaryrefslogtreecommitdiff
path: root/Documentation/rev-list-options.txt
diff options
context:
space:
mode:
authorKevin Bracey <kevin@bracey.fi>2013-05-16 18:32:36 +0300
committerJunio C Hamano <gitster@pobox.com>2013-05-16 11:51:09 -0700
commit9c129eab99f16d7bb174b35573e68ae6a5d02efe (patch)
treeec1b25ac5a95875ef49d1d0d9c80154dfec19cc3 /Documentation/rev-list-options.txt
parentd5d2fc8b1a2afdd086b194b2a834e896367d6713 (diff)
downloadgit-9c129eab99f16d7bb174b35573e68ae6a5d02efe.tar.gz
simplify-merges: never remove all TREESAME parents
When simplifying an odd merge, such as one that used "-s ours", we may find ourselves TREESAME to apparently redundant parents. Prevent simplify_merges() from removing every TREESAME parent; if this would happen reinstate the first TREESAME parent - the one that the default log would have followed. This avoids producing a totally disjoint history from the default log when the default log is a better explanation of the end result, and aids visualisation of odd merges. Signed-off-by: Kevin Bracey <kevin@bracey.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/rev-list-options.txt')
-rw-r--r--Documentation/rev-list-options.txt3
1 files changed, 2 insertions, 1 deletions
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index d166384ff2..f41e86545b 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -471,7 +471,8 @@ history according to the following rules:
+
* Replace each parent `P` of `C'` with its simplification `P'`. In
the process, drop parents that are ancestors of other parents, and
- remove duplicates.
+ remove duplicates, but take care to never drop all parents that
+ we are TREESAME to.
+
* If after this parent rewriting, `C'` is a root or merge commit (has
zero or >1 parents), a boundary commit, or !TREESAME, it remains.