diff options
author | Kevin Bracey <kevin@bracey.fi> | 2013-05-16 18:32:39 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-05-16 11:51:10 -0700 |
commit | 4d826608e9610851d29440ca290e54b701921608 (patch) | |
tree | dcae3f11bb893adf66bec4a3bd2cb6a098012a6c /t/t6111-rev-list-treesame.sh | |
parent | 7f34a46ff57121910c9ad697c2809a2d01ed1673 (diff) | |
download | git-4d826608e9610851d29440ca290e54b701921608.tar.gz git-4d826608e9610851d29440ca290e54b701921608.tar.xz |
revision.c: discount side branches when computing TREESAME
Use the BOTTOM flag to define relevance for pruning. Relevant commits
are those that are !UNINTERESTING or BOTTOM, and this allows us to
identify irrelevant side branches (UNINTERESTING && !BOTTOM).
If a merge has relevant parents, and it is TREESAME to them, then do not
let irrelevant parents cause the merge to be treated as !TREESAME.
When considering simplification, don't always include all merges -
merges with exactly one relevant parent can be simplified, if TREESAME
according to the above rule.
These two changes greatly increase simplification in limited, pruned
revision lists.
Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t6111-rev-list-treesame.sh')
-rwxr-xr-x | t/t6111-rev-list-treesame.sh | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/t/t6111-rev-list-treesame.sh b/t/t6111-rev-list-treesame.sh index 484b69bb2..e32b37306 100755 --- a/t/t6111-rev-list-treesame.sh +++ b/t/t6111-rev-list-treesame.sh @@ -138,9 +138,9 @@ check_result 'M L G' F..M --first-parent -- file # Note that G is pruned when E is the bottom, even if it's the same commit list # If we want history since E, then we're quite happy to ignore G that took E. check_result 'M L K J I H G' E..M --ancestry-path -check_outcome failure 'M L J I H' E..M --ancestry-path -- file # includes G +check_result 'M L J I H' E..M --ancestry-path -- file check_outcome failure '(LH)M (K)L (EJ)K (I)J (E)I (E)H' E..M --ancestry-path --parents -- file # includes G -check_outcome failure '(LH)M (E)H (J)L (I)J (E)I' E..M --ancestry-path --simplify-merges -- file # includes G +check_result '(LH)M (E)H (J)L (I)J (E)I' E..M --ancestry-path --simplify-merges -- file # Should still be able to ignore I-J branch in simple log, despite limiting # to G. @@ -167,9 +167,9 @@ check_result 'F D' B..F --full-history -- file check_result '(D)F (BA)D' B..F --full-history --parents -- file check_result '(B)F' B..F --simplify-merges -- file check_result 'F D' B..F --ancestry-path -check_outcome failure 'F' B..F --ancestry-path -- file # includes D +check_result 'F' B..F --ancestry-path -- file check_outcome failure 'F' B..F --ancestry-path --parents -- file # includes D -check_outcome failure 'F' B..F --ancestry-path --simplify-merges -- file # includes D +check_result 'F' B..F --ancestry-path --simplify-merges -- file check_result 'F D' B..F --first-parent check_result 'F' B..F --first-parent -- file |