X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=CHANGELOG.md;h=7bc40c511843095d7cd13fec73d540cebca70dee;hb=6d91dc53514aa9eec4bdf2326d1f7657ac2426b3;hp=4664c4d4114a98d4627d2e5b49c73f41219efc31;hpb=0fef38999abc74b8237971f96295f461631d9d1d;p=libgit2.git diff --git a/CHANGELOG.md b/CHANGELOG.md index 4664c4d41..7bc40c511 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ v0.21 + 1 * Use a map for the treebuilder, making insertion O(1) +* Introduce reference transactions, which allow multiple references to + be locked at the same time and updates be queued. This also allows + us to safely update a reflog with arbitrary contents, as we need to + do for stash. + +* The index' tree cache is now filled upon read-tree and write-tree + and the cache is written to disk. + * LF -> CRLF filter refuses to handle mixed-EOL files * LF -> CRLF filter now runs when * text = auto (with Git for Windows 1.9.4) @@ -21,6 +29,10 @@ v0.21 + 1 as, so this introduces the USERNAME credential type which the ssh transport will use to ask for the username. +* The build system now accepts an option EMBED_SSH_PATH which when set + tells it to include a copy of libssh2 at the given location. This is + enabled for MSVC. + * The git_transport_register function no longer takes a priority and takes a URL scheme name (eg "http") instead of a prefix like "http://" @@ -31,6 +43,17 @@ v0.21 + 1 path of the programs to execute for receive-pack and upload-pack on the server, git_transport_ssh_with_paths. +* git_remote_rename() now takes the repository and the remote's + current name. Accepting a remote indicates we want to change it, + which we only did partially. It is much clearer if we accept a name + and no loaded objects are changed. + +* git_remote_delete() now accepts the repository and the remote's name + instead of a loaded remote. + +* git_remote_supported_url() has been removed as it has become + essentially useless with rsync-style ssh paths. + * The git_clone_options struct no longer provides the ignore_cert_errors or remote_name members for remote customization. @@ -46,11 +69,64 @@ v0.21 + 1 repository_cb_payload to allow the user to create a repository with custom options. +* The option to ignore certificate errors via git_remote_cert_check() + is no longer present. Instead, git_remote_callbacks has gained a new + entry which lets the user perform their own certificate checks. + * git_clone_into and git_clone_local_into have been removed from the public API in favour of git_clone callbacks * Add support for refspecs with the asterisk in the middle of a pattern. +* Fetching now performs opportunistic updates. To achieve this, we + introduce a difference between active and passive refspecs, which + make git_remote_download and git_remote_fetch to take a list of + resfpecs to be the active list, similarly to how git fetch accepts a + list on the command-line. + +* Rename git_remote_load() to git_remote_lookup() to bring it in line + with the rest of the lookup functions. + * Introduce git_merge_bases() and the git_oidarray type to expose all merge bases between two commits. + +* Introduce git_merge_bases_many() to expose all merge bases between + multiple commits. + +* git_merge_head is now git_annotated_commit, to better reflect its usage + for multiple functions (including rebase) + +* Introduce rebase functionality (using the merge algorithm only). + Introduce git_rebase_init() to begin a new rebase session, + git_rebase_open() to open an in-progress rebase session, + git_rebase_commit() to commit the current rebase operation, + git_rebase_next() to apply the next rebase operation, + git_rebase_abort() to abort an in-progress rebase and git_rebase_finish() + to complete a rebase operation. + +* Introduce git_note_author() and git_note_committer() to get the author + and committer information on a git_note, respectively. + +* The THREADSAFE option to build libgit2 with threading support has + been flipped to be on by default. + +* The context_lines and interhunk_lines fields in git_diff_options are + now uint32_t instead of uint16_t. This allows to set them to UINT_MAX, + in effect asking for "infinite" context e.g. to iterate over all the + unmodified lines of a diff. + +* git_status_file now takes an exact path. Use git_status_list_new if + pathspec searching is needed. + +* The fetch behavior of remotes with autotag set to GIT_REMOTE_DOWNLOAD_TAGS_ALL + has been changed to match git 1.9.0 and later. In this mode, libgit2 now + fetches all tags in addition to whatever else needs to be fetched. + +* git_threads_init() and git_threads_shutdown() have been renamed to + git_libgit2_init() and git_libgit2_shutdown() to better explain what + their purpose is, as it's grown to be more than just about threads. + +* git_libgit2_init() and git_libgit2_shutdown() now return the number of + initializations of the library, so consumers may schedule work on the + first initialization.