diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-01-17 20:15:34 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-17 20:15:34 +0000 |
commit | 6e17bfda57467b32b5709e8d9014eae767810869 (patch) | |
tree | a6bcf619eada36173dbba4eb309afdf7bb1add3f | |
parent | abe236757933f84fa1485fd56ba99b2e2e8cab65 (diff) | |
parent | 6a0e94572b2baa37e334bd575f83d1e02aa52275 (diff) | |
download | libgit2-6e17bfda57467b32b5709e8d9014eae767810869.tar.gz |
Merge pull request #4932 from libgit2/ethomson/changelog
changelog: document changes since 0.27
-rw-r--r-- | docs/changelog.md | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/docs/changelog.md b/docs/changelog.md index bc31a86e1..d4fc41333 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -3,16 +3,83 @@ v0.27 + 1 ### Changes or improvements +* Reference log creation now honors `core.logallrefupdates=always`. + +* Fix some issues with the error-reporting in the OpenSSL backend. + +* HTTP proxy support is now builtin; libcurl is no longer used to support + proxies and is removed as a dependency. + +* Certificate and credential callbacks can now return `GIT_PASSTHROUGH` + to decline to act; libgit2 will behave as if there was no callback set + in the first place. + * The line-ending filtering logic - when checking out files - has been updated to match newer git (>= git 2.9) for proper interoperability. +* Symbolic links are now supported on Windows when `core.symlinks` is set + to `true`. + * Submodules with names which attempt to perform path traversal now have their configuration ignored. Such names were blindly appended to the `$GIT_DIR/modules` and a malicious name could lead to an attacker writing to an arbitrary location. This matches git's handling of CVE-2018-11235. +* Object validation is now performed during tree creation in the + `git_index_write_tree_to` API. + +* Configuration variable may now be specified on the same line as a section + header; previously this was erroneously a parser error. + +* When an HTTP server supports both NTLM and Negotiate authentication + mechanisms, we would previously fail to authenticate with any mechanism. + +* The `GIT_OPT_SET_PACK_MAX_OBJECTS` option can now set the maximum + number of objects allowed in a packfile being downloaded; this can help + limit the maximum memory used when fetching from an untrusted remote. + +* Line numbers in diffs loaded from patch files were not being populated; + they are now included in the results. + +* The repository's index is reloaded from disk at the beginning of + `git_merge` operations to ensure that it is up-to-date. + +* Mailmap handling APIs have been introduced, and the new commit APIs + `git_commit_committer_with_mailmap` and `git_commit_author_with_mailmap` + will use the mailmap to resolve the committer and author information. + In addition, blame will use the mailmap given when the + `GIT_BLAME_USE_MAILMAP` option. + +* Ignore handling for files in ignored folders would be ignored. + +* Worktrees can now be backed by bare repositories. + +* Trailing spaces are supported in `.gitignore` files, these spaces were + previously (and erroneously) treated as part of the pattern. + +* The library can now be built with mbedTLS support for HTTPS. + +* The diff status character 'T' will now be presented by the + `git_diff_status_char` API for diff entries that change type. + +* Revision walks previously would sometimes include commits that should + have been ignored; this is corrected. + +* Revision walks are now more efficient when the output is unsorted; + we now avoid walking all the way to the beginning of history unnecessarily. + ### API additions +* The index may now be iterated atomically using `git_index_iterator`. + +* Remote objects can now be created with extended options using the + `git_remote_create_with_opts` API. + +* Diff objects can now be applied as changes to the working directory, + index or both, emulating the `git apply` command. Additionally, + `git_apply_to_tree` can apply those changes to a tree object as a + fully in-memory operation. + * You can now swap out memory allocators via the `GIT_OPT_SET_ALLOCATOR` option with `git_libgit2_opts()`. @@ -28,10 +95,37 @@ v0.27 + 1 examine your code to ensure that you are not relying on the current behavior that implicitly removes staged changes. +* Reference specifications can be parsed from an arbitrary string with + the `git_refspec_parse` API. + +* You can now get the name and path of worktrees using the + `git_worktree_name` and `git_worktree_path` APIs, respectively. + +* The `ref` field has been added to `git_worktree_add_options` to enable + the creation of a worktree from a pre-existing branch. + +* It's now possible to analyze merge relationships between any two + references, not just against `HEAD`, using `git_merge_analysis_for_ref`. + ### API removals ### Breaking API changes +* The `git_buf_free` API is deprecated; it has been renamed to + `git_buf_dispose` for consistency. The `git_buf_free` API will be + removed in a future release. + +* The `git_otype` enumeration and its members are deprecated and have + been renamed for consistency. The `GIT_OBJ_` enumeration values are + now prefixed with `GIT_OBJECT_`. The `git_otype` enumeration will + be removed in a future release. + +* Several index-related APIs have been renamed for consistency. The + `GIT_IDXENTRY_` enumeration values and macros have been renamed to + be prefixed with `GIT_INDEX_ENTRY_`. The `GIT_INDEXCAP` enumeration + values are now prefixed with `GIT_INDEX_CAPABILITY_`. The old + enumerations and macros will be removed in a future release. + * The default checkout strategy changed from `DRY_RUN` to `SAFE` (#4531). * Adding a symlink as .gitmodules into the index from the workdir or checking |