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