diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-08-30 15:35:39 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-08-30 17:25:57 -0700 |
commit | 94f0ced0d08c8f835992b82224231b9353490e0c (patch) | |
tree | 8a35b4a73d042fb2f762d2a112f86d6212210632 /builtin/clone.c | |
parent | in_merge_bases(): use paint_down_to_common() (diff) | |
download | tgif-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/clone.c')
0 files changed, 0 insertions, 0 deletions