1. 01 Aug, 2018 1 commit
  2. 16 Jul, 2018 1 commit
    • 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
  3. 15 Jun, 2018 1 commit
    • Jonathan Tan's avatar
      fetch-pack: introduce negotiator API · ec062838
      Jonathan Tan authored
      Introduce the new files fetch-negotiator.{h,c}, which contains an API
      behind which the details of negotiation are abstracted. Currently, only
      one algorithm is available: the existing one.
      
      This patch is written to be easily reviewed: static functions are
      moved verbatim from fetch-pack.c to negotiator/default.c, and it can be
      seen that the lines replaced by negotiator->X() calls are present in the
      X() functions respectively.
      Signed-off-by: default avatarJonathan Tan <jonathantanmy@google.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      ec062838