1. 17 Apr, 2014 8 commits
    • Index locking and entry allocation changes · 8a2834d3
      This makes the lock management on the index a little bit broader,
      having a number of routines hold the lock across looking up the
      item to be modified and actually making the modification.  Still
      not true thread safety, but more pure index modifications are now
      safe which allows the simple cases (such as starting up a diff
      while index modifications are underway) safe enough to get the
      snapshot without hitting allocation problems.
      
      As part of this, I simplified the allocation of index entries to
      use a flex array and just put the path at the end of the index
      entry.  This makes every entry self-contained and makes it a
      little easier to feel sure that pointers to strings aren't
      being accidentally copied and freed while other references are
      still being held.
      Russell Belfer committed
    • Add diff threading tests and attr file cache locks · 40ed4990
      This adds a basic test of doing simultaneous diffs on multiple
      threads and adds basic locking for the attr file cache because
      that was the immediate problem that arose from these tests.
      Russell Belfer committed
    • Decouple index iterator sort from index · 3b4c401a
      This makes the index iterator honor the GIT_ITERATOR_IGNORE_CASE
      and GIT_ITERATOR_DONT_IGNORE_CASE flags without modifying the
      index data itself.  To take advantage of this, I had to export a
      number of the internal index entry comparison functions.  I also
      wrote some new tests to exercise the capability.
      Russell Belfer committed
    • Add mutex around index entries changes · dac16048
      This surrounds any function that mutates the entries vector with
      a mutex so it can be safely snapshotted.
      Russell Belfer committed
    • Add public diff print helpers · 27e54bcf
      The usefulness of these helpers came up for me while debugging
      some of the iterator changes that I was making, so since they
      have also been requested (albeit indirectly) I thought I'd include
      them.
      Russell Belfer committed
    • Some index internals refactoring · 3dbee456
      Again, laying groundwork for some index iterator changes, this
      contains a bunch of code refactorings for index internals that
      should make it easier down the line to add locking around index
      modifications.  Also this removes the redundant prefix_position
      function and fixes some potential memory leaks.
      Russell Belfer committed
    • Some vector utility tweaks · c67fd4c9
      This is just laying some groundwork for internal index changes
      that I'm working on.
      Russell Belfer committed
  2. 16 Apr, 2014 4 commits
  3. 15 Apr, 2014 6 commits
  4. 14 Apr, 2014 7 commits
  5. 11 Apr, 2014 4 commits
  6. 10 Apr, 2014 2 commits
    • Fix bug popping ignore files during wd iteration · 8f7bc646
      There were a couple bugs in popping ignore files during iteration
      that could result in incorrect decisions be made and thus ignore
      files below the root either not being loaded correctly or not
      being popped at the right time.
      
      One bug was an off-by-one in comparing the path of the gitignore
      file with the path being exited during iteration.
      
      The second bug was not correctly truncating the path being tracked
      during traversal if there were no ignores on the list (i.e. when
      you have no .gitignore at the root, but do have some in contained
      directories).
      Russell Belfer committed
    • Introduce git_buf_putcn · b3b36a68
      Allows for inserting the same character n amount of times
      Jacques Germishuys committed
  7. 09 Apr, 2014 4 commits
  8. 08 Apr, 2014 5 commits