• Jonathan Tan's avatar
    negotiator/skipping: skip commits during fetch · 42cc7485
    Jonathan Tan authored
    Introduce a new negotiation algorithm used during fetch that skips
    commits in an effort to find common ancestors faster. The skips grow
    similarly to the Fibonacci sequence as the commit walk proceeds further
    away from the tips. The skips may cause unnecessary commits to be
    included in the packfile, but the negotiation step typically ends more
    quickly.
    
    Usage of this algorithm is guarded behind the configuration flag
    fetch.negotiationAlgorithm.
    Signed-off-by: default avatarJonathan Tan <jonathantanmy@google.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    42cc7485
fetch-negotiator.c 365 Bytes