Tags: ecoffey/libgit2
Tags
libgit2 0.20.0 "anmeldung" Apologies for the delay. This release is chunky, but you're probably used to chunky releases by now. Full changelog follows: Internal changes + Added support for decomposed Unicode paths in Mac OS X + Added support for junctions in win32 + Fixed issues with HTTP redirects in the network stack + Performance improvements (as always) git2/blame.h + added full support for blame operations git2/blob.h + added `git_blob_filtered_content` to load blobs in memory with their corresponding filters applied git2/branch.h + added branch iterators as an alternative to the callback-based API git2/buffer.h + exported the git_buf struct to allow binary buffers to be passed from/to the library. This simplifies several APIs git2/checkout.h + implemented additional checkout options ('skip unmerged', 'use ours' and 'use theirs') git2/clone.h + simplified the clone API + added new `git_clone_into` to clone into an existing (empty) repository git2/commit.h + added APIs to access the raw (uncleaned) text of a commit message git2/common.h + added global options to set the default paths to load templates from git2/config.h + added multivar iterators + added globbing iterator + added `git_config_foreach_match` to perform operations on every single var in a config file git2/diff.h + restructured and simplified the diff API git2/filter.h + added external APIs to configure and apply custom filters to checked out blobs git2/index.h + `git_index_read` can now force a reload of the index file even if it hasn't changed on-disk git2/indexer.h + improved the streaming indexer APIs git2/merge.h + added support for merge! git2/object.h + added helper API to lookup a generic object by path git2/pack.h + added progress callbacks to the packbuilder git2/patch.h + added support for patch generation as part of the Diff API revamp git2/pathspec.h + added helper APIs to work with pathspecs and match files in the workdir or diffs git2/push.h + added progress callbacks to push git2/reflog.h + changed reflog APIs to work on reference names instead of the references themselves, so they become less racy git2/remote.h + added support for setting refspecs on remotes, either at creation or on existing ones + simplified the remotes API git2/revwalk.h + add API to simplify parents during a walk git2/signature.h + add helper to create a signature with the default values for a repository (i.e. the set `user.name` and `user.email` values, and the current time) git2/submodules.h + improve the status detection for submodules git2/sys/ + exported many new internal APIs, such as pluggabe transport APIs -vmg, out
libgit2 v0.19.0 "gut merge" Minor point release! We got a lot of rather large features that we wanted to get settled in: - New (threadsafe) cache for objects - Iterator for Status - New Merge APIs - SSH support on *NIX - Function context on diff - Namespaces support - Index add/update/remove with wildcard support - Iterator for References - Fetch and push refspecs for Remotes - Rename support in Status - New 'sys/` namespace for external headers with low-level APIs As always, this comes with hundreds of bug fixes and performance improvements. We're faster and better than ever. And we haven't broken many APIs this time! Build stuff.
libgit2 v0.15.0 "Das Wunderbar Release" 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.
libgit2 v0.14.0, "watermelon wheat" 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 libgit2#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
libgit2 v0.13.0 "Watermelon Wheat" 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
libgit2 v0.12.0 "absolutely no reason" 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 libgit2#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: libgit2@fa59f18 * 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 [email protected] Signed-off-by: Vicent Marti <[email protected]>
libgit2 version 0.11.0, "McSwifty" 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 72a3fe4. 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 <[email protected]>
PreviousNext