This project is mirrored from https://github.com/git/git. Updated .
  1. 16 Sep, 2012 1 commit
  2. 20 May, 2011 2 commits
    • Jeff King's avatar
      receive-pack: eliminate duplicate .have refs · cff38a5e
      Jeff King authored
      When receiving a push, we advertise ref tips from any
      alternate repositories, in case that helps the client send a
      smaller pack. Since these refs don't actually exist in the
      destination repository, we don't transmit the real ref
      names, but instead use the pseudo-ref ".have".
      
      If your alternate has a large number of duplicate refs (for
      example, because it is aggregating objects from many related
      repositories, some of which will have the same tags and
      branch tips), then we will send each ".have $sha1" line
      multiple times. This is a pointless waste of bandwidth, as
      we are simply repeating the same fact to the client over and
      over.
      
      This patch eliminates duplicate .have refs early on. It does
      so efficiently by sorting the complete list and skipping
      duplicates. This has the side effect of re-ordering the
      .have lines by ascending sha1; this isn't a problem, though,
      as the original order was meaningless.
      
      There is a similar .have system in fetch-pack, but it
      does not suffer from the same problem. For each alternate
      ref we consider in fetch-pack, we actually open the object
      and mark it with the SEEN flag, so duplicates are
      automatically culled.
      Signed-off-by: default avatarJeff King <peff@peff.net>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      cff38a5e
    • Jeff King's avatar
      bisect: refactor sha1_array into a generic sha1 list · 902bb364
      Jeff King authored
      This is a generally useful abstraction, so let's let others
      make use of it.  The refactoring is more or less a straight
      copy; however, functions and struct members have had their
      names changed to match string_list, which is the most
      similar data structure.
      Signed-off-by: default avatarJeff King <peff@peff.net>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      902bb364