simplify-merges: never remove all TREESAME parents
authorKevin Bracey <kevin@bracey.fi>
Thu, 16 May 2013 15:32:36 +0000 (18:32 +0300)
committerJunio C Hamano <gitster@pobox.com>
Thu, 16 May 2013 18:51:09 +0000 (11:51 -0700)
commit9c129eab99f16d7bb174b35573e68ae6a5d02efe
treeec1b25ac5a95875ef49d1d0d9c80154dfec19cc3
parentd5d2fc8b1a2afdd086b194b2a834e896367d6713
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>
Documentation/rev-list-options.txt
revision.c
t/t6111-rev-list-treesame.sh