@@ -3,16 +3,79 @@ v0.27 + 1
33
44### Changes or improvements
55
6+ * HTTP proxy support is now builtin; libcurl is no longer used to support
7+ proxies and is removed as a dependency.
8+
9+ * Certificate and credential callbacks can now return ` GIT_PASSTHROUGH `
10+ to decline to act; libgit2 will behave as if there was no callback set
11+ in the first place.
12+
613* The line-ending filtering logic - when checking out files - has been
714 updated to match newer git (>= git 2.9) for proper interoperability.
815
16+ * Symbolic links are now supported on Windows when ` core.symlinks ` is set
17+ to ` true ` .
18+
919* Submodules with names which attempt to perform path traversal now have their
1020 configuration ignored. Such names were blindly appended to the
1121 ` $GIT_DIR/modules ` and a malicious name could lead to an attacker writing to
1222 an arbitrary location. This matches git's handling of CVE-2018 -11235.
1323
24+ * Object validation is now performed during tree creation in the
25+ ` git_index_write_tree_to ` API.
26+
27+ * Configuration variable may now be specified on the same line as a section
28+ header; previously this was erroneously a parser error.
29+
30+ * When an HTTP server supports both NTLM and Negotiate authentication
31+ mechanisms, we would previously fail to authenticate with any mechanism.
32+
33+ * The ` GIT_OPT_SET_PACK_MAX_OBJECTS ` option can now set the maximum
34+ number of objects allowed in a packfile being downloaded; this can help
35+ limit the maximum memory used when fetching from an untrusted remote.
36+
37+ * Line numbers in diffs loaded from patch files were not being populated;
38+ they are now included in the results..
39+
40+ * The repository's index is reloaded from disk at the beginning of
41+ ` git_merge ` operations to ensure that it is up-to-date.
42+
43+ * Mailmap handling APIs have been introduced, and the new commit APIs
44+ ` git_commit_committer_with_mailmap ` and ` git_commit_author_with_mailmap `
45+ will use the mailmap to resolve the committer and author information.
46+ In addition, blame will use the mailmap given when the
47+ ` GIT_BLAME_USE_MAILMAP ` option.
48+
49+ * Ignore handling for files in ignored folders would be ignored.
50+
51+ * Worktrees can now be backed by bare repositories.
52+
53+ * Trailing spaces are supported in ` .gitignore ` files, these spaces were
54+ previously (and erroneously) treated as part of the pattern.
55+
56+ * The library can now be built with mbedTLS support for HTTPS.
57+
58+ * The diff status character 'T' will now be presented by the
59+ ` git_diff_status_char ` API for diff entries that change type.
60+
61+ * Revision walks previously would sometimes include commits that should
62+ have been ignored; this is corrected.
63+
64+ * Revision walks are now more efficient when the output is unsorted;
65+ we now avoid walking all the way to the beginning of history unnecessarily.
66+
1467### API additions
1568
69+ * The index may now be iterated atomically using ` git_index_iterator ` .
70+
71+ * Remote objects can now be created with extended options using the
72+ ` git_remote_create_with_opts ` API.
73+
74+ * Diff objects can now be applied as changes to the working directory,
75+ index or both, emulating the ` git apply ` command. Additionally,
76+ ` git_apply_to_tree ` can apply those changes to a tree object as a
77+ fully in-memory operation.
78+
1679* You can now swap out memory allocators via the
1780 ` GIT_OPT_SET_ALLOCATOR ` option with ` git_libgit2_opts() ` .
1881
@@ -28,10 +91,34 @@ v0.27 + 1
2891 examine your code to ensure that you are not relying on the current
2992 behavior that implicitly removes staged changes.
3093
94+ * Reference specifications can be parsed from an arbitrary string with
95+ the ` git_refspec_parse ` API.
96+
97+ * You can now get the name and path of worktrees using the
98+ ` git_worktree_name ` and ` git_worktree_path ` APIs, respectively.
99+
100+ * The ` ref ` field has been added to ` git_worktree_add_options ` to enable
101+ the creation of a worktree from a pre-existing branch.
102+
31103### API removals
32104
33105### Breaking API changes
34106
107+ * The ` git_buf_free ` API is deprecated; it has been renamed to
108+ ` git_buf_dispose ` for consistency. The ` git_buf_free ` API will be
109+ removed in a future release.
110+
111+ * The ` git_otype ` enumeration and its members are deprecated and have
112+ been renamed for consistency. The ` GIT_OBJ_ ` enumeration values are
113+ now prefixed with ` GIT_OBJECT_ ` . The ` git_otype ` enumeration will
114+ be removed in a future release.
115+
116+ * Several index-related APIs have been renamed for consistency. The
117+ ` GIT_IDXENTRY_ ` enumeration values and macros have been renamed to
118+ be prefixed with ` GIT_INDEX_ENTRY_ ` . The ` GIT_INDEXCAP ` enumeration
119+ values are now prefixed with ` GIT_INDEX_CAPABILITY_ ` . The old
120+ enumerations and macros will be removed in a future release.
121+
35122* The default checkout strategy changed from ` DRY_RUN ` to ` SAFE ` (#4531 ).
36123
37124* Adding a symlink as .gitmodules into the index from the workdir or checking
0 commit comments