diff options
author | Kevin Bracey <kevin@bracey.fi> | 2013-05-16 18:32:36 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-05-16 11:51:09 -0700 |
commit | 9c129eab99f16d7bb174b35573e68ae6a5d02efe (patch) | |
tree | ec1b25ac5a95875ef49d1d0d9c80154dfec19cc3 /Documentation/rev-list-options.txt | |
parent | d5d2fc8b1a2afdd086b194b2a834e896367d6713 (diff) | |
download | git-9c129eab99f16d7bb174b35573e68ae6a5d02efe.tar.gz git-9c129eab99f16d7bb174b35573e68ae6a5d02efe.tar.xz |
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.txt | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index d166384ff..f41e86545 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. |