Commit 1bb03f7ac17b2b498d21baedeead4be34be8c9a6

Edward Thomson 2019-01-10T21:32:05

changelog: document changes since 0.27

diff --git a/docs/changelog.md b/docs/changelog.md
index bc31a86..3310d3c 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -3,16 +3,79 @@ v0.27 + 1
 
 ### Changes or improvements
 
+* 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 +91,34 @@ 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.
+
 ### 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