1. 22 Nov, 2014 1 commit
    • peel: reject bad queries with EINVALIDSPEC · 753e17b0
      There are some combination of objects and target types which we know
      cannot be fulfilled. Return EINVALIDSPEC for those to signify that there
      is a mismatch in the user-provided data and what the object model is
      capable of satisfying.
      
      If we start at a tag and in the course of peeling find out that we
      cannot reach a particular type, we return EPEEL.
      Carlos Martín Nieto committed
  2. 06 May, 2014 1 commit
  3. 05 Mar, 2014 1 commit
  4. 25 Feb, 2014 1 commit
  5. 28 Oct, 2013 1 commit
  6. 16 Sep, 2013 1 commit
  7. 11 May, 2013 1 commit
  8. 02 May, 2013 1 commit
  9. 01 May, 2013 1 commit
  10. 22 Apr, 2013 6 commits
  11. 10 Apr, 2013 1 commit
  12. 08 Jan, 2013 1 commit
  13. 01 Dec, 2012 1 commit
  14. 29 Nov, 2012 1 commit
  15. 28 Nov, 2012 2 commits
  16. 27 Nov, 2012 1 commit
  17. 22 Nov, 2012 1 commit
  18. 10 Sep, 2012 1 commit
    • Reorg internal odb read header and object lookup · c6ac28fd
      Often `git_odb_read_header` will "fail" and have to read the
      entire object into memory instead of just the header.  When this
      happens, the object is loaded and then disposed of immediately,
      which makes it difficult to efficiently use the header information
      to decide if the object should be loaded (since attempting to do
      so will often result in loading the object twice).
      
      This commit takes the existing code and reorganizes it to have
      two new functions:
      
      - `git_odb__read_header_or_object` which acts just like the old
        read header function except that it returns the object, too, if
        it was forced to load the whole thing.  It then becomes the
        callers responsibility to free the `git_odb_object`.
      - `git_object__from_odb_object` which was extracted from the old
        `git_object_lookup` and creates a subclass of `git_object` from
        an existing `git_odb_object` (separating the ODB lookup from the
        `git_object` creation).  This allows you to use the first header
        reading function efficiently without instantiating the
        `git_odb_object` twice.
      
      There is no net change to the behavior of any of the existing
      functions, but this allows internal code to tap into the ODB
      lookup and object creation to be more efficient.
      Russell Belfer committed
  19. 27 Aug, 2012 1 commit
    • Make git_object_peel a bit smarter · d8057a5b
      This expands the types of peeling that `git_object_peel` knows
      how to do to include TAG -> BLOB peeling, and makes the errors
      slightly more consistent depending on the situation.  It also
      adds a new special behavior where peeling to ANY will peel until
      the object type changes (e.g. chases TAGs to a non-TAG).
      
      Using this expanded peeling, this replaces peeling code that was
      embedded in `git_tag_peel` and `git_reset`.
      Russell Belfer committed
  20. 24 Jul, 2012 1 commit
  21. 17 Jul, 2012 1 commit
  22. 21 Jun, 2012 1 commit
  23. 17 May, 2012 2 commits
  24. 11 May, 2012 1 commit
  25. 08 May, 2012 1 commit
  26. 04 May, 2012 1 commit
    • Fix valgrind issues · 282283ac
      There are three changes here:
      - correctly propogate error code from failed object lookups
      - make zlib inflate use our allocators
      - add OID to notfound error in ODB lookups
      Russell Belfer committed
  27. 03 May, 2012 2 commits
    • Support reading attributes from index · f917481e
      Depending on the operation, we need to consider gitattributes
      in both the work dir and the index.  This adds a parameter to
      all of the gitattributes related functions that allows user
      control of attribute reading behavior (i.e. prefer workdir,
      prefer index, only use index).
      
      This fix also covers allowing us to check attributes (and
      hence do diff and status) on bare repositories.
      
      This was a somewhat larger change that I hoped because it had
      to change the cache key used for gitattributes files.
      Russell Belfer committed
  28. 26 Apr, 2012 1 commit
  29. 13 Mar, 2012 1 commit
    • Migrate ODB files to new error handling · e1de726c
      This migrates odb.c, odb_loose.c, odb_pack.c and pack.c to
      the new style of error handling.  Also got the unix and win32
      versions of map.c.  There are some minor changes to other
      files but no others were completely converted.
      
      This also contains an update to filebuf so that a zeroed out
      filebuf will not think that the fd (== 0) is actually open
      (and inadvertently call close() on fd 0 if cleaned up).
      
      Lastly, this was built and tested on win32 and contains a
      bunch of fixes for the win32 build which was pretty broken.
      Russell Belfer committed
  30. 13 Feb, 2012 1 commit
  31. 26 Nov, 2011 2 commits
    • Rename all `_close` methods · 45e79e37
      There's no difference between `_free` and `_close` semantics: keep
      everything with the same name to avoid confusions.
      Vicent Marti committed
    • repository: Change ownership semantics · 9462c471
      The ownership semantics have been changed all over the library to be
      consistent. There are no more "borrowed" or duplicated references.
      
      Main changes:
      
      	- `git_repository_open2` and `3` have been dropped.
      
      	- Added setters and getters to hotswap all the repository owned
      	objects:
      
      		`git_repository_index`
      		`git_repository_set_index`
      		`git_repository_odb`
      		`git_repository_set_odb`
      		`git_repository_config`
      		`git_repository_set_config`
      		`git_repository_workdir`
      		`git_repository_set_workdir`
      
      	Now working directories/index files/ODBs and so on can be
      	hot-swapped after creating a repository and between operations.
      
      	- All these objects now have proper ownership semantics with
      	refcounting: they all require freeing after they are no longer
      	needed (the repository always keeps its internal reference).
      
      	- Repository open and initialization has been updated to keep in
      	mind the configuration files. Bare repositories are now always
      	detected, and a default config file is created on init.
      
      	- All the tests affected by these changes have been dropped from the
      	old test suite and ported to the new one.
      Vicent Marti committed