1. 17 Mar, 2013 1 commit
  2. 03 Mar, 2013 2 commits
    • indexer: use a hashtable for keeping track of offsets · 0e040c03
      These offsets are needed for REF_DELTA objects, which encode which
      object they use as a base, but not where it lies in the packfile, so
      we need a list.
      
      These objects are mostly from older packfiles, before OFS_DELTA was
      widely spread. The time spent in indexing these packfiles is greatly
      reduced, though remains above what git is able to do.
      Carlos Martín Nieto committed
    • indexer: kill git_indexer · 447ae791
      This was the first implementation and its goal was simply to have
      something that worked. It is slow and now it's just taking up
      space. Remove it and switch the one known usage to use the streaming
      indexer.
      Carlos Martín Nieto committed
  3. 14 Feb, 2013 1 commit
  4. 05 Feb, 2013 2 commits
  5. 12 Jan, 2013 1 commit
  6. 11 Jan, 2013 3 commits
  7. 08 Jan, 2013 1 commit
  8. 17 Dec, 2012 1 commit
  9. 07 Dec, 2012 1 commit
  10. 30 Nov, 2012 3 commits
    • indexer: correctly deal with objects larger than the window size · 3908c254
      A mmap-window is not guaranteed to give you the whole object, but the
      indexer currently assumes so.
      
      Loop asking for more data until we've successfully CRC'd all of the
      packed data.
      Carlos Martín Nieto committed
    • indexer: make use of streaming also for deltas · 5a3ad89d
      Up to now, deltas needed to be enterily in the packfile, and we tried
      to decompress then in their entirety over and over again.
      
      Adjust the logic so we read them as they come, just as we do for full
      objects. This also allows us to simplify the logic and have less
      nested code. The delta resolving phase still needs to decompress the
      whole object into memory, as there is not yet any streaming
      delta-apply support, but it helps in speeding up the downloading
      process and reduces the amount of memory allocations we need to do.
      Carlos Martín Nieto committed
    • indexer: use the packfile streaming API · f56f8585
      The new API allows us to read the object bit by bit from the packfile,
      instead of needing it all at once in the packfile. This also allows us
      to hash the object as it comes in from the network instead of having
      to try to read it all and failing repeatedly for larger objects.
      
      This is only the first step, but it already shows huge improvements
      when dealing with objects over a few megabytes in size. It reduces the
      memory needs in some cases, but delta objects still need to be
      completely in memory and the old inefficent method is still used for
      that.
      Carlos Martín Nieto committed
  11. 27 Nov, 2012 1 commit
  12. 23 Nov, 2012 1 commit
  13. 18 Nov, 2012 1 commit
  14. 13 Nov, 2012 2 commits
  15. 29 Oct, 2012 1 commit
  16. 24 Oct, 2012 1 commit
  17. 20 Oct, 2012 2 commits
  18. 09 Oct, 2012 1 commit
  19. 25 Aug, 2012 2 commits
  20. 24 Aug, 2012 1 commit
  21. 14 Jul, 2012 1 commit
  22. 28 Jun, 2012 2 commits
  23. 25 Jun, 2012 1 commit
    • indexer: start parsing input data immediately · f9fd7105
      Currently, the first call of git_indexer_stream_add adds the data to the
      underlying pack file and opens it for later use, but doesn't start
      parsing the already available data.
      This means, git_indexer_stream_finalize only works if
      git_indexer_stream_add was called at least twice. Kill this limitation
      by parsing available data immediately.
      Michael Schubert committed
  24. 12 Jun, 2012 1 commit
  25. 07 Jun, 2012 1 commit
  26. 19 May, 2012 1 commit
  27. 17 May, 2012 2 commits
  28. 15 May, 2012 2 commits