reduce_heads(): reimplement on top of remove_redundant()
commitf37d3c755209234acfc2ca280027ebdab8e9ea8a
authorJunio C Hamano <gitster@pobox.com>
Fri, 31 Aug 2012 06:20:40 +0000 (30 23:20 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 31 Aug 2012 18:45:36 +0000 (31 11:45 -0700)
tree91e9f5899d2cb51a5ff6807f62ee84ff4ff973cd
parent5907cda1b2e0bd7dc5c26466f60b9cbb60288cc5
reduce_heads(): reimplement on top of remove_redundant()

This is used by "git merge" and "git merge-base --independent" but
used to use a similar N*(N-1) traversals to reject commits that are
ancestors of other commits.

Reimplement it on top of remove_redundant().  Note that the callers
of this function are allowed to pass the same commit more than once,
but remove_redundant() is designed to be fed each commit only once.
The function removes duplicates before calling remove_redundant().

Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit.c