1. 11 Jul, 2012 1 commit
  2. 19 Jun, 2012 1 commit
    • message: Expose git_message_prettify() · 743a4b3b
      git_commit() and git_tag() no longer prettify the
      message by default. This has to be taken care of
      by the caller.
      
      This has the nice side effect of putting the
      caller in position to actually choose to strip
      the comments or not.
      nulltoken committed
  3. 07 Jun, 2012 1 commit
  4. 11 May, 2012 1 commit
  5. 12 Apr, 2012 1 commit
  6. 28 Mar, 2012 1 commit
    • Added submodule API and use in status · bfc9ca59
      When processing status for a newly checked out repo, it is
      possible that there will be submodules that have not yet been
      initialized.  The only way to distinguish these from untracked
      directories is to have some knowledge of submodules.  This
      commit adds a new submodule API which, given a name or path,
      can determine if it appears to be a submodule and can give
      information about the submodule.
      Russell Belfer committed
  7. 02 Mar, 2012 1 commit
    • Implement diff lists and formatters · 65b09b1d
      This reworks the diff API to separate the steps of producing
      a diff descriptions from formatting the diff.  This will allow
      us to share diff output code with the various diff creation
      scenarios and will allow us to implement rename detection as
      an optional pass that can be run on a diff list.
      Russell Belfer committed
  8. 15 Feb, 2012 2 commits
    • Add git notes API · bf477ed4
      This commit adds basic git notes support to libgit2, namely:
      
      * git_note_read
      * git_note_message
      * git_note_oid
      * git_note_create
      * git_note_remove
      
      In the long run, we probably want to provide some convenience callback
      mechanism for merging and moving (filter-branch) notes.
      
      Signed-off-by: schu <schu-github@schulog.org>
      schu committed
    • zlib: Remove custom `git2/zlib.h` header · 0c3bae62
      This is legacy compat stuff for when `deflateBound` is not defined, but
      we're not embedding zlib and that function is always available. Kill
      that with fire.
      Vicent Martí committed
  9. 13 Feb, 2012 1 commit
  10. 28 Nov, 2011 1 commit
  11. 16 Nov, 2011 1 commit
  12. 09 Oct, 2011 1 commit
  13. 05 Oct, 2011 1 commit
    • libgit2 v0.15.0 "Das Wunderbar Release" · 3eaf34f4
      I am aware the codename is not gramatically correct in any language.
      
      Check the COPYING file for the detailed terms on libgit2's license. Check
      the AUTHORS file for the full list of guilty parties.
      
      As we slowly stabilize the API, we've dropped 1 function from the library,
      and changed the signature of only 5 of them. There's of course a good
      chunk of new functionality, and a thousand bug fixes.
      
      In this release of libgit2:
      
      	- Changed `git_blob_rawsize`: Now returns `size_t` instead of int, allowing
      	files >4GB in 64 bit systems.
      
      	- Removed `git_commit_message_short`: Please use `git_commit_message`
      	to get the full message and decide which is the "short view" according
      	to your needs (first line, first 80 chars...)
      
      	- Added `git_commit_message_encoding`: Returns the encoding field of a commit
      	message, if it exists.
      
      	- Changed `git_commit_create`, `git_commit_create_v`: New argument `encoding`, which
      	adds a encoding field to the generated commit object.
      
      	- Added `git_config_find_system`: Returns the path to the system's global config
      	file (according to the Core Git standards).
      
      	- Changed `git_config_get_XX`, `git_config_set_XX`: the `long` and `int` types have
      	been replaced by `int64` and `int32` respectively, to make their meaning more
      	obvious.
      
      	- Added `git_indexer`: An interface to index Git Packfiles has been added in the
      	`git2/indexer.h` header.
      
      	- Changed `git_reflog_entry_XX`: Reflog entries are now returned as `git_oid *` objects
      	instead of hexadecimal OIDs.
      
      	- Added `git_remote`: More fetch functionality has been added to the `git2/remote.h`
      	functionality. Local, Smart HTTP and Git protocols are now supported.
      
      	- Added `git_repository_head`: Returns the HEAD of the repository.
      
      	- Added `git_repository_config_autoload`: Opens the configuration file of a repository,
      	including the user's and the system's global config files, if they can be found.
      
      	- Changed `git_signature_now`: Now returns an error code; the signature is stored by
      	reference.
      Vicent Marti committed
  14. 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
  15. 02 Aug, 2011 1 commit
  16. 29 Jul, 2011 1 commit
  17. 27 Jul, 2011 1 commit
  18. 14 Jul, 2011 1 commit
    • libgit2 v0.14.0, "watermelon wheat" · 52e50c1a
      This a very packed minor release. The usual guilty parties have been
      working harder than usual during the holidays -- thanks to everyone
      involved!
      
      As always, the updated API docs can be found at:
      
      	http://libgit2.github.com/libgit2/
      
      NEW FEATURES:
      
      	- New OS abstraction layer. This should make all POSIX calls much
      	more reliable under Windows.
      
      	- Much faster writes of simple objects (commits, tags, trees) to the
      	ODB via in-memory buffering and direct writes, instead of streaming.
      
      	- Unified & simplified API for object creation. All the `create`
      	methods now take Objects instead of OIDs to ensure that corrupted
      	(dangling) objects cannot be created on the repository.
      
      	- Fully Git-compilant reference renaming (finally!), with
      	the already existing `git_reference_rename`.
      
      	- Deletion of config keys with `git_config_delete`
      
      	- Greatly improved index performance when adding new entries
      
      	- Reflog support with the `git_reflog` API
      
      	- Remotes support with the `git_remote` API
      
      	- First parts of the Networking API, including refspecs and
      	the transport abstraction layer. (Note that there are no actual
      	transports implemented yet)
      
      	- Status support with the `git_status_foreach` and `git_status_file`
      	functions.
      
      	- Tons of bugfixes, including the outstanding bug #127 (wrong sort
      	ordering when querying tree entries).
      
      KNOWN ISSUES:
      
      	- The reference renaming code leaks memory. This is being worked on
      	as part of a reference handling overhaul.
      
      	- The tree-from-index builder has abysmal performance because it
      	doesn't handle the Treecache extension yet. This is also being
      	worked on.
      
      FULL API CHANGELOG:
      
      	- removed, * modified, + added
      
      	- git_commit_create_o
      	- git_commit_create_ov
      	- git_reference_create_oid_f
      	- git_reference_create_symbolic_f
      	- git_reference_rename_f
      	- git_tag_create_f
      	- git_tag_create_fo
      	- git_tag_create_o
      
      	* git_commit_create
      	* git_commit_create_v
      	* git_config_foreach
      	* git_reference_create_oid
      	* git_reference_create_symbolic
      	* git_reference_rename
      	* git_tag_create
      	* git_tag_create_frombuffer
      
      	+ git_clearerror
      	+ git_config_delete
      	+ git_index_uniq
      	+ git_odb_hashfile
      	+ git_oid_fromstrn
      	+ git_reflog_entry_byindex
      	+ git_reflog_entry_committer
      	+ git_reflog_entry_msg
      	+ git_reflog_entry_oidnew
      	+ git_reflog_entry_oidold
      	+ git_reflog_entrycount
      	+ git_reflog_free
      	+ git_reflog_read
      	+ git_reflog_write
      	+ git_refspec_src_match
      	+ git_refspec_transform
      	+ git_remote_connect
      	+ git_remote_fetchspec
      	+ git_remote_free
      	+ git_remote_get
      	+ git_remote_ls
      	+ git_remote_name
      	+ git_remote_url
      	+ git_repository_head_detached
      	+ git_repository_head_orphan
      	+ git_status_file
      	+ git_status_foreach
      	+ git_tag_create_lightweight
      	+ git_tag_list_match
      	+ git_transport_new
      Vicent Marti committed
  19. 11 Jul, 2011 1 commit
  20. 09 Jul, 2011 1 commit
  21. 26 Jun, 2011 4 commits
  22. 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
  23. 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
  24. 21 Apr, 2011 1 commit
  25. 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
  26. 14 Mar, 2011 1 commit
    • libgit2 version 0.10.0, "very disco" · 7064938b
      A version *so* awesome that needs 2 version bumps AND a codename.
      
      Major features:
      
      	- New internal garbage collection (harder)
      	- Pack backend rewritten from scratch (better)
      	- Revision walker rewritten from scratch (faster)
      	- New object interdependency system (stronger)
      	- Unique OID shortener
      	- Reference listing
      
      In honor of one heck of a music album, released ten years ago,
      yesterday.
      Vicent Marti committed
  27. 03 Mar, 2011 2 commits
  28. 09 Feb, 2011 1 commit
    • Internal changes on the backend system · d4b5a4e2
      The priority value for different backends has been removed from the
      public `git_odb_backend` struct. We handle that internally. The priority
      value is specified on the `git_odb_add_alternate`.
      
      This is convenient because it allows us to poll a backend twice with
      different priorities without having to instantiate it twice.
      
      We also differentiate between main backends and alternates; alternates have
      lower priority and cannot be written to.
      
      These changes come with some unit tests to make sure that the backend
      sorting is consistent.
      
      The libgit2 version has been bumped to 0.4.0.
      
      This commit changes the external API:
      
      CHANGED:
      	struct git_odb_backend
      		No longer has a `priority` attribute; priority for the backend
      		in managed internally by the library.
      
      	git_odb_add_backend(git_odb *odb, git_odb_backend *backend, int priority)
      		Now takes an additional priority parameter, the priority that
      		will be given to the backend.
      
      ADDED:
      	git_odb_add_alternate(git_odb *odb, git_odb_backend *backend, int priority)
      		Add a backend as an alternate. Alternate backends have always
      		lower priority than main backends, and writing is disabled on
      		them.
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
  29. 07 Feb, 2011 1 commit
    • Add proper version management · 9d1dcca2
      We now have proper sonames in Mac OS X and Linux, proper versioning on
      the pkg-config file and proper DLL naming in Windows.
      
      The version of the library is defined exclusively in 'src/git2.h'; the build scripts
      read it from there automatically.
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
  30. 30 Jan, 2011 1 commit
    • Refactor reference parsing code · 2f8a8ab2
      Several changes have been committed to allow the user to create
      in-memory references and write back to disk. Peeling of symbolic
      references has been made explicit. Added getter and setter methods for
      all attributes on a reference. Added corresponding documentation.
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
  31. 11 Jan, 2011 2 commits
  32. 18 Dec, 2010 1 commit
  33. 06 Dec, 2010 1 commit