1. 27 Jan, 2014 1 commit
  2. 01 Nov, 2013 1 commit
  3. 01 Jul, 2013 1 commit
  4. 30 Apr, 2013 1 commit
  5. 28 Apr, 2013 1 commit
  6. 20 Apr, 2013 2 commits
    • refspec: unify the string and parsed data · 1be680c4
      It used to be separate as an attempt to make the querying easier, but
      it didn't work out that way, so put all the data together.
      
      Add git_refspec_string() as well to get the original string, which is
      now stored alongside the independent parts.
      Carlos Martín Nieto committed
    • remote: handle multiple refspecs · 4330ab26
      A remote can have a multitude of refspecs. Up to now our git_remote's
      have supported a single one for each fetch and push out of simplicity
      to get something working.
      
      Let the remotes and internal code know about multiple remotes and get
      the tests passing with them.
      
      Instead of setting a refspec, the external users can clear all and add
      refspecs. This should be enough for most uses, though we're still
      missing a querying function.
      Carlos Martín Nieto committed
  7. 11 Feb, 2013 2 commits
  8. 11 Jan, 2013 1 commit
  9. 08 Jan, 2013 1 commit
  10. 11 Nov, 2012 1 commit
  11. 25 Oct, 2012 1 commit
  12. 07 Oct, 2012 1 commit
  13. 30 Sep, 2012 1 commit
  14. 25 Sep, 2012 1 commit
  15. 29 May, 2012 1 commit
  16. 17 May, 2012 2 commits
  17. 03 May, 2012 1 commit
  18. 30 Apr, 2012 1 commit
  19. 26 Apr, 2012 1 commit
  20. 06 Mar, 2012 1 commit
    • error-handling: Repository · cb8a7961
      This also includes droping `git_buf_lasterror` because it makes no sense
      in the new system. Note that in most of the places were it has been
      dropped, the code needs cleanup. I.e. GIT_ENOMEM is going away, so
      instead it should return a generic `-1` and obviously not throw
      anything.
      Vicent Martí committed
  21. 13 Feb, 2012 1 commit
  22. 31 Jan, 2012 1 commit
  23. 18 Jan, 2012 1 commit
  24. 08 Dec, 2011 1 commit
    • Use git_buf for path storage instead of stack-based buffers · 97769280
      This converts virtually all of the places that allocate GIT_PATH_MAX
      buffers on the stack for manipulating paths to use git_buf objects
      instead.  The patch is pretty careful not to touch the public API
      for libgit2, so there are a few places that still use GIT_PATH_MAX.
      
      This extends and changes some details of the git_buf implementation
      to add a couple of extra functions and to make error handling easier.
      
      This includes serious alterations to all the path.c functions, and
      several of the fileops.c ones, too.  Also, there are a number of new
      functions that parallel existing ones except that use a git_buf
      instead of a stack-based buffer (such as git_config_find_global_r
      that exists alongsize git_config_find_global).
      
      This also modifies the win32 version of p_realpath to allocate whatever
      buffer size is needed to accommodate the realpath instead of hardcoding
      a GIT_PATH_MAX limit, but that change needs to be tested still.
      Russell Belfer committed
  25. 18 Nov, 2011 1 commit
  26. 29 Oct, 2011 1 commit
  27. 08 Oct, 2011 1 commit
  28. 19 Sep, 2011 1 commit
    • Tabify everything · 87d9869f
      There were quite a few places were spaces were being used instead of
      tabs. Try to catch them all. This should hopefully not break anything.
      Except for `git blame`. Oh well.
      Vicent Marti committed
  29. 18 Sep, 2011 1 commit
    • Cleanup legal data · bb742ede
      1. The license header is technically not valid if it doesn't have a
      copyright signature.
      
      2. The COPYING file has been updated with the different licenses used in
      the project.
      
      3. The full GPLv2 header in each file annoys me.
      Vicent Marti committed
  30. 26 Jun, 2011 3 commits
  31. 19 Jun, 2011 1 commit
    • libgit2 v0.13.0 "Watermelon Wheat" · 37172582
      On this rascalicious minor release of libgit2:
      
      - We've dropped support for Waf. All the build process is now managed
      through CMake for all platforms.
      
      - We've removed the custom backends from the repository. You can now
      find a collection of Custom backends on their own repo, under the
      libgit2 org. Including MySQL and Memcache backends, courtesy of the
      beardful Brian Lopez.
      
      - We are rocking a new documentation system, Docurium, courtesy of the
      insightful Scott Chacon. Check out the details for each single method
      in our external API and the way they've evolved through the history
      of the library:
      
      	http://libgit2.github.com/libgit2/
      
      This will certainly come in handy if you are developing bindings for
      the library.
      
      - You can now check the linked version of the library from your
      application or bindings, using `git_libgit2_version`.
      
      - We have a gazillion new features, courtesy of our invaluable
      collaborators, including:
      
      	* Support for Config files!
      	* Support for prefix-only reads on the ODB
      	* Repository discovery
      	* Support for the Unmerged Entries index extension
      	* Better Windows support
      	* 30.000 bug fixes (actual number may be lower)
      
      Thanks as always to everyone who makes this project possible.
      
      Here's the full list of all external API changes:
      
      - git_index_open_bare
      - git_index_open_inrepo
      - git_odb_backend_sqlite
      - git_oid_mkraw
      - git_oid_mkstr
      - git_reference_listcb
      - git_repository_workdir
      
      = git_index_get
      = git_repository_path
      = git_tree_entry_byindex
      
      + git_blob_lookup_prefix
      + git_commit_lookup_prefix
      + git_config_add_file
      + git_config_add_file_ondisk
      + git_config_file__ondisk
      + git_config_find_global
      + git_config_foreach
      + git_config_free
      + git_config_get_bool
      + git_config_get_int
      + git_config_get_long
      + git_config_get_string
      + git_config_new
      + git_config_open_global
      + git_config_open_ondisk
      + git_config_set_bool
      + git_config_set_int
      + git_config_set_long
      + git_config_set_string
      + git_index_entry_stage
      + git_index_entrycount_unmerged
      + git_index_get_unmerged_byindex
      + git_index_get_unmerged_bypath
      + git_index_open
      + git_object_lookup_prefix
      + git_odb_read_prefix
      + git_oid_fromraw
      + git_oid_fromstr
      + git_oid_ncmp
      + git_reference_foreach
      + git_repository_config
      + git_repository_discover
      + git_repository_is_bare
      + git_tag_lookup_prefix
      + git_tree_entry_type
      + git_tree_lookup_prefix
      Vicent Marti committed
  32. 10 May, 2011 1 commit
    • libgit2 v0.12.0 "absolutely no reason" · 40774549
      Hey, welcome to yet another minor libgit2 release. Sorry for the delay from
      the last one. As you'll see the changelog is quite extensive -- hopefully from
      now on we'll stick to more frequent minor releases.
      
      Together with the usual bugfixes, here's a list of the new key features:
      
      * Distfiles
      
      	This version comes with proper distfiles as requested in #131. These are
      	available in the Downloads section of the GitHub project.
      
      * Error handling
      
      	A new error handling API has been implemented that allows the library to
      	return detailed error messages together with the generic error codes. We
      	hope this will be a great when wrapping and integrating the library
      
      	New external method to get the last detailed error message:
      
      		+ git_lasterror(void)
      
      	The old `git_strerror` still exists, but will be deprecated in the future
      	as soon as every method in the library returns a valid error message.
      
      	The task of writing error messages for every method is quite daunting.
      	We appreciate pull requests with more error messages. Check the new error
      	handling documentation in the following commit:
      
      	https://github.com/libgit2/libgit2/commit/fa59f18d0ddbbb98d45e33934fb0efc3e2bf1557
      
      * Redis backend
      
      	We now have a Redis backend courtesy of Dmitry Kovega. Just like the
      	SQLite backend, this allows the library to store Git objects in a Redis
      	key-value store.
      
      	The backend requires the `hiredis` library. Use `--with-redis` when
      	building libgit2 to enable building the backend if `hiredis` is available.
      
      * Commits
      
      	New methods to access tree and parent data as a raw OID value
      	instead of forcing a repository lookup
      
      		+ git_commit_tree_oid(git_commit *commit)
      		+ git_commit_parent_oid(git_commit *commit, unsigned int n)
      
      * Index
      
      	The `git_index_add` method has been split into 4 different calls
      	which allow for appending and replacing in-memory entries and on-disk
      	files to the index.
      
      		+ git_index_add(git_index *index, const char *path, int stage)
      		+ git_index_add2(git_index *index, const git_index_entry *source_entry)
      		+ git_index_append(git_index *index, const char *path, int stage)
      		+ git_index_append2(git_index *index, const git_index_entry *source_entry)
      
      	Index entries can now also be efficiently removed from the index:
      
      		+ git_index_remove(git_index *index, int position)
      
      * References
      
      	Methods to force the creation and renaming of references, even if those already
      	exist on the repository.
      
      		+ git_reference_create_symbolic_f(git_reference **ref_out, git_repository *repo,
      				const char *name, const char *target)
      		+ git_reference_create_oid_f(git_reference **ref_out, git_repository *repo,
      				const char *name, const git_oid *id)
      		+ git_reference_rename_f(git_reference *ref, const char *new_name)
      
      * Repository
      
      	New auxiliary methods with repository information
      
      		+ git_repository_is_empty(git_repository *repo)
      		+ git_repository_path(git_repository *repo)
      		+ git_repository_workdir(git_repository *repo)
      
      * Signatures
      
      	New method to create a signature with the current date/time
      
      		+ git_signature_now(const char *name, const char *email)
      
      * Tags
      
      	Several wrappers to automate tag creation.
      
      		+ git_tag_create_frombuffer(git_oid *oid, git_repository *repo,
      				const char *buffer)
      		+ git_tag_create_f(git_oid *oid, git_repository *repo,
      				const char *tag_name, const git_oid *target,
      				git_otype target_type, const git_signature *tagger,
      				const char *message);
      		+ git_tag_create_fo(git_oid *oid, git_repository *repo,
      				const char *tag_name, const git_object *target,
      				const git_signature *tagger, const char *message)
      
      	New functionality to delete and list tags in a repository without
      	having to resort to the `references` API.
      
      		+ git_tag_delete(git_repository *repo, const char *tag_name)
      
      		+ git_tag_list(git_strarray *tag_names, git_repository *repo)
      
      * Trees
      
      	All instances of `git_tree_entry` are now returned and handled
      	as constant, to remind the user that these opaque types are not
      	supposed to be manually free'd.
      
      	The `git_tree_entry_2object` method now takes a `git_repository`
      	argument which defines in which repository the resolved object
      	should be looked up. (It is expected to be the same repository
      	that contains the parent `git_tree` for the entry).
      
      		+ git_tree_entry_2object(git_object **object_out, git_repository *repo,
      				const git_tree_entry *entry)
      
      	New opaque type `git_treebuilder` with functionality to create and
      	write trees on memory
      
      		+ git_treebuilder_create(git_treebuilder **builder_p, const git_tree *source)
      		+ git_treebuilder_clear(git_treebuilder *bld)
      		+ git_treebuilder_free(git_treebuilder *bld)
      		+ git_treebuilder_get(git_treebuilder *bld, const char *filename)
      		+ git_treebuilder_insert(git_tree_entry **entry_out, git_treebuilder *bld,
      				const char *filename, const git_oid *id, unsigned int attributes)
      		+ git_treebuilder_remove(git_treebuilder *bld, const char *filename)
      		+ git_treebuilder_filter(git_treebuilder *bld,
      				int (*filter)(const git_tree_entry *, void *), void *payload)
      		+ git_treebuilder_write(git_oid *oid, git_repository *repo, git_treebuilder *bld)
      
      	New method to write an index file as a tree to the ODB.
      
      		+ git_tree_create_fromindex(git_oid *oid, git_index *index)
      
      Thanks to the usual guility parties that make this this happen, to
      all the new contributors who are starting to submit pull requests, and
      to the bindings developers who have to keep up with our shit.
      
      Feedback and questions welcome on libgit2@librelist.org
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
  33. 21 Apr, 2011 1 commit
  34. 28 Mar, 2011 2 commits
    • libgit2 version 0.11.0, "McSwifty" · 6dcb09b5
      Apologies for the massive changes in the external API (that's my fault),
      and for the terrible codename for this release (that's @tclem's fault).
      
      The detailed overview for the major API changes can be found in the
      commit at 72a3fe42.
      
      Major new features in this release:
      
      	- Real caching and refcounting on parsed objects
      	- Real caching and refcounting on objects read from the ODB
      	- Streaming writes & reads from the ODB
      	- Single-method writes for all object types
      	- The external API is now partially thread-safe
      	- Improved reference handling
      	- New method to list references
      	- ZLib is now built-in
      	- Improvements to the Revision Walker
      	- Tons of bug fixes
      
      Thanks to all the contributors who make this possible.
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
    • Move the struct declaration outside config.c · 5d4cd003
      Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
      Carlos Martín Nieto committed