1. 08 Oct, 2013 1 commit
  2. 13 Sep, 2013 2 commits
  3. 05 Sep, 2013 2 commits
  4. 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
  5. 16 May, 2013 1 commit
    • Add cat-file example and increase const use in API · 58206c9a
      This adds an example implementation that emulates git cat-file.
      It is a convenient and relatively simple example of getting data
      out of a repository.
      
      Implementing this also revealed that there are a number of APIs
      that are still not using const pointers to objects that really
      ought to be.  The main cause of this is that `git_vector_bsearch`
      may need to call `git_vector_sort` before doing the search, so a
      const pointer to the vector is not allowed.  However, for tree
      objects, with a little care, we can ensure that the vector of
      tree entries is always sorted and allow lookups to take a const
      pointer.  Also, the missing const in commit objects just looks
      like an oversight.
      Russell Belfer committed
  6. 01 May, 2013 1 commit
  7. 30 Apr, 2013 2 commits
  8. 29 Apr, 2013 1 commit
  9. 22 Apr, 2013 5 commits
  10. 18 Apr, 2013 1 commit
  11. 14 Mar, 2013 1 commit
    • Improved tree iterator internals · 0c468633
      This updates the tree iterator internals to be more efficient.
      
      The tree_iterator_entry objects are now kept as pointers that are
      allocated from a git_pool, so that we may use git__tsort_r for
      sorting (which is better than qsort, given that the tree is
      likely mostly ordered already).
      
      Those tree_iterator_entry objects now keep direct pointers to the
      data they refer to instead of keeping indirect index values.  This
      simplifies a lot of the data structure traversal code.
      
      This also adds bsearch to find the start item position for range-
      limited tree iterators, and is more explicit about using
      git_path_cmp instead of reimplementing it.  The git_path_cmp
      changed a bit to make it easier for tree_iterators to use it (but
      it was barely being used previously, so not a big deal).
      
      This adds a git_pool_free_array function that efficiently frees a
      list of pool allocated pointers (which the tree_iterator keeps).
      Also, added new tests for the git_pool free list functionality
      that was not previously being tested (or used).
      Russell Belfer committed
  12. 01 Mar, 2013 2 commits
  13. 20 Feb, 2013 2 commits
  14. 05 Feb, 2013 1 commit
  15. 28 Jan, 2013 1 commit
  16. 27 Jan, 2013 1 commit
  17. 15 Jan, 2013 1 commit
  18. 08 Jan, 2013 1 commit
  19. 10 Dec, 2012 2 commits
    • Fix iterator reset and add reset ranges · 91e7d263
      The `git_iterator_reset` command has not been working in all cases
      particularly when there is a start and end range.  This fixes it
      and adds tests for it, and also extends it with the ability to
      update the start/end range strings when an iterator is reset.
      Russell Belfer committed
    • Clean up iterator APIs · 9950d27a
      This removes the need to explicitly pass the repo into iterators
      where the repo is implied by the other parameters.  This moves
      the repo to be owned by the parent struct.  Also, this has some
      iterator related updates to the internal diff API to lay the
      groundwork for checkout improvements.
      Russell Belfer committed
  20. 07 Dec, 2012 1 commit
    • tree: relax the filemode parser · f1c75b94
      There are many different broken filemodes in the wild so we need to
      protect against them and give something useful up the chain. Don't
      fail when reading a tree from the ODB but normalize the mode as best
      we can.
      
      As 664 is no longer a mode that we consider to be valid and gets
      normalized to 644, we can stop accepting it in the treebuilder. The
      library won't expose it to the user, so any invalid modes are a bug.
      Carlos Martín Nieto committed
  21. 27 Nov, 2012 4 commits
  22. 19 Nov, 2012 2 commits
  23. 18 Nov, 2012 1 commit
  24. 09 Nov, 2012 1 commit
  25. 01 Nov, 2012 2 commits