summaryrefslogtreecommitdiff
path: root/builtin/rev-list.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2012-08-30 15:35:39 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2012-08-30 17:25:57 -0700
commit94f0ced0d08c8f835992b82224231b9353490e0c (patch)
tree8a35b4a73d042fb2f762d2a112f86d6212210632 /builtin/rev-list.c
parentin_merge_bases(): use paint_down_to_common() (diff)
downloadtgif-94f0ced0d08c8f835992b82224231b9353490e0c.tar.xz
get_merge_bases_many(): walk from many tips in parallel
The get_merge_bases_many() function reduces the result returned by the merge_bases_many() function, which is a set of possible merge bases, by excluding commits that can be reached from other commits. We used to do N*(N-1) traversals for this, but we can check if one commit reaches which other (N-1) commits by a single traversal, and repeat it for all the candidates to find the answer. Introduce remove_redundant() helper function to do this painting; we should be able to use it to reimplement reduce_heads() as well. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/rev-list.c')
0 files changed, 0 insertions, 0 deletions