in_merge_bases(): omit unnecessary redundant common ancestor reduction
authorThomas Rast <trast@student.ethz.ch>
Thu, 23 Aug 2012 14:20:41 +0000 (16:20 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 28 Aug 2012 15:37:07 +0000 (08:37 -0700)
commitb0f9e9eeef0ed4f21fc9bfa92f1314e3112d5cc1
treee0983e31157fd5c62fc43b880c1192169b3e8fe0
parent6571225137b1ba270b49a0dfc6a30aab6f4b86ba
in_merge_bases(): omit unnecessary redundant common ancestor reduction

The function get_merge_bases() needs to postprocess the result from
merge_bases_many() in order to make sure none of the commit is a
true ancestor of another commit, which is expensive.  However, when
checking if a commit is an ancestor of another commit, we only need
to see if the commit is a common ancestor between the two, and do
not have to care if other common ancestors merge_bases_many() finds
are true merge bases or an ancestor of another merge base.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit.c