Skip to content

Commit 6e17bfd

Browse files
authored
Merge pull request libgit2#4932 from libgit2/ethomson/changelog
changelog: document changes since 0.27
2 parents abe2367 + 6a0e945 commit 6e17bfd

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

docs/changelog.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)