1. 03 Oct, 2013 2 commits
    • Initial iconv hookup for precomposed unicode · 219d3457
      This hooks up git_path_direach and git_path_dirload so that they
      will take a flag indicating if directory entry names should be
      tested and converted from decomposed unicode to precomposed form.
      This code will only come into play on the Apple platform and even
      then, only when certain types of filesystems are used.
      
      This involved adding a flag to these functions which involved
      changing a lot of places in the code.
      
      This was an opportunity to do a bit of code cleanup here and there,
      for example, getting rid of the git_futils_cleanupdir_r function in
      favor of a simple flag to git_futils_rmdir_r to not remove the top
      level entry.  That ended up adding depth tracking during rmdir_r
      which led to a safety check for infinite directory recursion.  Yay.
      
      This hasn't actually been tested on the Mac filesystems where the
      issue occurs.  I still need to get test environment for that.
      Russell Belfer committed
    • Put hooks in place for precompose in dirload fn · 2fe54afa
      This doesn't actual do string precompose but it puts the hooks in
      place into the iterators and the git_path_dirload function so that
      the actual precompose work is ready to go.
      Russell Belfer committed
  2. 02 Oct, 2013 2 commits
  3. 24 Sep, 2013 1 commit
  4. 10 Sep, 2013 1 commit
  5. 22 Aug, 2013 1 commit
  6. 21 Aug, 2013 1 commit
  7. 20 Aug, 2013 1 commit
  8. 22 Jul, 2013 2 commits
    • Use pool for loose refdb string allocations · c77342ef
      Instead of using lots of strdup calls, this adds a memory pool to
      the loose refs iteration code and uses it for keeping track of the
      loose refs array.  Memory usage could probably be reduced even
      further by eliminating the vector and just scanning by adding the
      strlen of each ref, but that would be a more intrusive changes.
      
      This also updates the error handling to be more thorough about
      checking for failed allocations, etc.
      Russell Belfer committed
    • git_reference_next_name must match git_reference_next · b7107131
      The git_reference_next API silently skips invalid references when
      scanning the loose refs.  The git_reference_next_name API should
      skip the same ones even though it isn't creating the reference
      object.
      
      This adds a test with a an invalid loose reference and makes sure
      that both APIs skip the same entries and generate the same results.
      Russell Belfer committed
  9. 10 Jun, 2013 1 commit
    • Reorganize diff and add basic diff driver · 114f5a6c
      This is a significant reorganization of the diff code to break it
      into a set of more clearly distinct files and to document the new
      organization.  Hopefully this will make the diff code easier to
      understand and to extend.
      
      This adds a new `git_diff_driver` object that looks of diff driver
      information from the attributes and the config so that things like
      function content in diff headers can be provided.  The full driver
      spec is not implemented in the commit - this is focused on the
      reorganization of the code and putting the driver hooks in place.
      
      This also removes a few #includes from src/repository.h that were
      overbroad, but as a result required extra #includes in a variety
      of places since including src/repository.h no longer results in
      pulling in the whole world.
      Russell Belfer committed
  10. 31 May, 2013 1 commit
    • Make iterators use GIT_ITEROVER & smart advance · cee695ae
      1. internal iterators now return GIT_ITEROVER when you go past the
         last item in the iteration.
      2. git_iterator_advance will "advance" to the first item in the
         iteration if it is called immediately after creating the
         iterator, which allows a simpler idiom for basic iteration.
      3. if git_iterator_advance encounters an error reading data (e.g.
         a missing tree or an unreadable file), it returns the error
         but also attempts to advance past the invalid data to prevent
         an infinite loop.
      
      Updated all tests and internal usage of iterators to account for
      these new behaviors.
      Russell Belfer committed
  11. 30 May, 2013 2 commits
  12. 29 May, 2013 1 commit
  13. 28 May, 2013 2 commits
  14. 19 May, 2013 1 commit
  15. 15 May, 2013 2 commits
  16. 11 May, 2013 4 commits
  17. 09 May, 2013 1 commit
  18. 02 May, 2013 6 commits
  19. 01 May, 2013 2 commits
  20. 30 Apr, 2013 1 commit
  21. 23 Apr, 2013 1 commit
  22. 22 Apr, 2013 1 commit
    • Further threading fixes · 53607868
      This builds on the earlier thread safety work to make it so that
      setting the odb, index, refdb, or config for a repository is done
      in a threadsafe manner with minimized locking time.  This is done
      by adding a lock to the repository object and using it to guard
      the assignment of the above listed pointers.  The lock is only
      held to assign the pointer value.
      
      This also contains some minor fixes to the other work with pack
      files to reduce the time that locks are being held to and fix an
      apparently memory leak.
      Russell Belfer committed
  23. 21 Apr, 2013 2 commits
  24. 19 Apr, 2013 1 commit