Skip to content

Commit a552c10

Browse files
ethomsonpks-t
authored andcommitted
docs: update changelog for v0.99
Give the release a name, "Torschlusspanik" (the fear that time is running out to act). Indeed, the time is running out for changes to be included in v1.0.
1 parent 1256b46 commit a552c10

File tree

1 file changed

+342
-18
lines changed

1 file changed

+342
-18
lines changed

docs/changelog.md

Lines changed: 342 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,289 @@
1-
v0.28 + 1
2-
---------
1+
v0.99
2+
-----
3+
4+
This is v0.99 "Torschlusspanik". This will be the last minor release
5+
before libgit2 v1.0. We expect to only respond to bugs in this release,
6+
to stabilize it for next major release.
7+
8+
It contains significant refactorings, but is expected to be API-compatible
9+
with v0.28.0.
10+
11+
### Changes or improvements
12+
13+
* When fetching from an anonymous remote using a URL with authentication
14+
information provided in the URL (eg `https://foo:bar@example.com/repo`),
15+
we would erroneously include the literal URL in the FETCH_HEAD file.
16+
We now remove that to match git's behavior.
17+
18+
* Some credential structures, enums and values have been renamed:
19+
`git_cred` is now `git_credential`. `git_credtype_t` is now
20+
`git_credential_t`. Functions and types beginning with
21+
`git_cred_` now begin with `git_credential`, and constants beginning
22+
with `GIT_CREDTYPE` now begin with `GIT_CREDENTIAL`. The former names
23+
are deprecated.
24+
25+
* Several function signatures have been changed to return an `int` to
26+
indicate error conditions. We encourage you to check them for errors
27+
in the standard way.
28+
29+
* `git_attr_cache_flush`
30+
* `git_error_set_str`
31+
* `git_index_name_clear`
32+
* `git_index_reuc_clear`
33+
* `git_libgit2_version`
34+
* `git_mempack_reset`
35+
* `git_oid_cpy`
36+
* `git_oid_fmt`
37+
* `git_oid_fromraw`
38+
* `git_oid_nfmt`
39+
* `git_oid_pathfmt`
40+
* `git_remote_stop`
41+
* `git_remote_disconnect`
42+
* `git_repository__cleanup`
43+
* `git_repository_set_config`
44+
* `git_repository_set_index`
45+
* `git_repository_set_odb`
46+
* `git_repository_set_refdb`
47+
* `git_revwalk_reset`
48+
* `git_revwalk_simplify_first_parent`
49+
* `git_revwalk_sorting`
50+
* `git_treebuilder_clear`
51+
* `git_treebuilder_filter`
52+
53+
* The NTLM and Negotiate authentication mechanisms are now supported when
54+
talking to git implementations hosted on Apache or nginx servers.
55+
56+
* The `HEAD` symbolic reference can no longer be deleted.
57+
58+
* `git_merge_driver_source_repo` no longer returns a `const git_repository *`,
59+
it now returns a non-`const` `git_repository *`.
60+
61+
* Relative symbolic links are now supported on Windows when `core.symlinks`
62+
is enabled.
63+
64+
* Servers that provide query parameters with a redirect are now supported.
65+
66+
* `git_submodule_sync` will now resolve relative URLs.
67+
68+
* When creating git endpoint URLs, double-slashes are no longer used when
69+
the given git URL has a trailing slash.
70+
71+
* On Windows, a `DllMain` function is no longer included and thread-local
72+
storage has moved to fiber-local storage in order to prevent race
73+
conditions during shutdown.
74+
75+
* The tracing mechanism (`GIT_TRACE`) is now enabled by default and does
76+
not need to be explicitly enabled in CMake.
77+
78+
* The size of Git objects is now represented by `git_object_size_t`
79+
instead of `off_t`.
80+
81+
* Binary patches without data can now be parsed.
82+
83+
* A configuration snapshot can now be created from another configuration
84+
snapshot, not just a "true" configuration object.
85+
86+
* The `git_commit_with_signature` API will now ensure that referenced
87+
objects exist in the object database.
88+
89+
* Stash messages containing newlines will now be replaced with spaces;
90+
they will no longer be (erroneously) written to the repository.
91+
92+
* `git_commit_create_with_signature` now verifies the commit information
93+
to ensure that it points to a valid tree and valid parents.
94+
95+
* `git_apply` has an option `GIT_APPLY_CHECK` that will only do a dry-run.
96+
The index and working directory will remain unmodified, and application
97+
will report if it would have worked.
98+
99+
* Patches produced by Mercurial (those that lack some git extended headers)
100+
can now be parsed and applied.
101+
102+
* Reference locks are obeyed correctly on POSIX platforms, instead of
103+
being removed.
104+
105+
* Patches with empty new files can now be read and applied.
106+
107+
* `git_apply_to_tree` can now correctly apply patches that add new files.
108+
109+
* The program data configuration on Windows (`C:\ProgramData\Git\config`)
110+
must be owned by an administrator, a system account or the current user
111+
to be read.
112+
113+
* `git_blob_filtered_content` is now deprecated in favor of `git_blob_filter`.
114+
115+
* Configuration files can now be included conditionally using the
116+
`onbranch` conditional.
117+
118+
* Checkout can now properly create and remove symbolic links to directories
119+
on Windows.
120+
121+
* Stash no longer recomputes trees when committing a worktree, for
122+
improved performance.
123+
124+
* Repository templates can now include a `HEAD` file to default the
125+
initial default branch.
126+
127+
* Some configuration structures, enums and values have been renamed:
128+
`git_cvar_map` is now `git_configmap`, `git_cvar_t` is now
129+
`git_configmap_t`, `GIT_CVAR_FALSE` is now `GIT_CONFIGMAP_FALSE`,
130+
`GIT_CVAR_TRUE` is now `GIT_CONFIGMAP_TRUE`, `GIT_CVAR_INT32` is now
131+
`GIT_CONFIGMAP_INT32`, and `GIT_CVAR_STRING` is now `GIT_CONFIGMAP_STRING`.
132+
The former names are deprecated.
133+
134+
* Repositories can now be created at the root of a Windows drive.
135+
136+
* Configuration lookups are now more efficiently cached.
137+
138+
* `git_commit_create_with_signature` now supports a `NULL` signature,
139+
which will create a commit without adding a signature.
140+
141+
* When a repository lacks an `info` "common directory", we will no
142+
longer erroneously return `GIT_ENOTFOUND` for all attribute lookups.
143+
144+
* Several attribute macros have been renamed: `GIT_ATTR_TRUE` is now
145+
`GIT_ATTR_IS_TRUE`, `GIT_ATTR_FALSE` is now `GIT_ATTR_IS_FALSE`,
146+
`GIT_ATTR_UNSPECIFIED` is now `GIT_ATTR_IS_UNSPECIFIED`. The
147+
attribute enum `git_attr_t` is now `git_attr_value_t` and its
148+
values have been renamed: `GIT_ATTR_UNSPECIFIED_T` is now
149+
`GIT_ATTR_VALUE_UNSPECIFIED`, `GIT_ATTR_TRUE_T` is now
150+
`GIT_ATTR_VALUE_TRUE`, `GIT_ATTR_FALSE_T` is now `GIT_ATTR_VALUE_FALSE`,
151+
and `GIT_ATTR_VALUE_T` is now `GIT_ATTR_VALUE_STRING`. The
152+
former names are deprecated.
153+
154+
* `git_object__size` is now `git_object_size`. The former name is
155+
deprecated.
156+
157+
* `git_tag_create_frombuffer` is now `git_tag_create_from_buffer`. The
158+
former name is deprecated.
159+
160+
* Several blob creation functions have been renamed:
161+
`git_blob_create_frombuffer` is now named `git_blob_create_from_buffer`,
162+
`git_blob_create_fromdisk` is now named `git_blob_create_from_disk`,
163+
`git_blob_create_fromworkdir` is now named `git_blob_create_from_workdir`,
164+
`git_blob_create_fromstream` is now named `git_blob_create_from_stream`,
165+
and `git_blob_create_fromstream_commit` is now named
166+
`git_blob_create_from_stream_commit`. The former names are deprecated.
167+
168+
* The function `git_oid_iszero` is now named `git_oid_is_zero`. The
169+
former name is deprecated.
170+
171+
* Pattern matching is now done using `wildmatch` instead of `fnmatch`
172+
for compatibility with git.
173+
174+
* The option initialization functions suffixed by `init_options` are now
175+
suffixed with `options_init`. (For example, `git_checkout_init_options`
176+
is now `git_checkout_options_init`.) The former names are deprecated.
177+
178+
* NTLM2 authentication is now supported on non-Windows platforms.
179+
180+
* The `git_cred_sign_callback` callback is now named `git_cred_sign_cb`.
181+
The `git_cred_ssh_interactive_callback` callback is now named
182+
`git_cred_ssh_interactive_cb`.
183+
184+
* Ignore files now:
185+
186+
* honor escaped trailing whitespace.
187+
* do not incorrectly negate sibling paths of a negated pattern.
188+
* honor rules that stop ignoring files after a wildcard
189+
190+
* Attribute files now:
191+
192+
* honor leading and trailing whitespace.
193+
* treat paths beginning with `\` as absolute only on Windows.
194+
* properly handle escaped characters.
195+
* stop reading macros defined in subdirectories
196+
197+
* The C locale is now correctly used when parsing regular expressions.
198+
199+
* The system PCRE2 or PCRE regular expression libraries are now used
200+
when `regcomp_l` is not available on the system. If none of these
201+
are available on the system, an included version of PCRE is used.
202+
203+
* Wildcards in reference specifications are now supported beyond simply
204+
a bare wildcard (`*`) for compatibility with git.
205+
206+
* When `git_ignore_path_is_ignored` is provided a path with a trailing
207+
slash (eg, `dir/`), it will now treat it as a directory for the
208+
purposes of ignore matching.
209+
210+
* Patches that add or remove a file with a space in the path can now
211+
be correctly parsed.
212+
213+
* The `git_remote_completion_type` type is now `git_remote_completion_t`.
214+
The former name is deprecated.
215+
216+
* The `git_odb_backend_malloc` is now `git_odb_backend_data_alloc`. The
217+
former name is deprecated.
218+
219+
* The `git_transfer_progress_cb` callback is now `git_indexer_progress_cb`
220+
and the `git_transfer_progress` structure is now `git_indexer_progress`.
221+
The former names are deprecated.
222+
223+
* The example projects are now contained in a single `lg2` executable
224+
for ease of use.
225+
226+
* libgit2 now correctly handles more URLs, such as
227+
`http://example.com:/repo.git` (colon but no port),
228+
`http://example.com` (no path),
229+
and `http://example.com:8080/` (path is /, nonstandard port).
230+
231+
* A carefully constructed commit object with a very large number
232+
of parents may lead to potential out-of-bounds writes or
233+
potential denial of service.
234+
235+
* The ProgramData configuration file is always read for compatibility
236+
with Git for Windows and Portable Git installations. The ProgramData
237+
location is not necessarily writable only by administrators, so we
238+
now ensure that the configuration file is owned by the administrator
239+
or the current user.
240+
241+
### API additions
242+
243+
* The SSH host key now supports SHA-256 when `GIT_CERT_SSH_SHA256` is set.
244+
245+
* The diff format option `GIT_DIFF_FORMAT_PATCH_ID` can now be used to
246+
emit an output like `git patch-id`.
247+
248+
* The `git_apply_options_init` function will initialize a
249+
`git_apply_options` structure.
250+
251+
* The remote callbacks structure adds a `git_url_resolve_cb` callback
252+
that is invoked when connecting to a server, so that applications
253+
may edit or replace the URL before connection.
254+
255+
* The information about the original `HEAD` in a rebase operation is
256+
available with `git_rebase_orig_head_name`. Its ID is available with
257+
`git_rebase_orig_head_id`. The `onto` reference name is available with
258+
`git_rebase_onto_name` and its ID is available with `git_rebase_onto_id`.
259+
260+
* ODB backends can now free backend data when an error occurs during its
261+
backend data creation using `git_odb_backend_data_free`.
262+
263+
* Options may be specified to `git_repository_foreach_head` to control
264+
its behavior: `GIT_REPOSITORY_FOREACH_HEAD_SKIP_REPO` will not skip
265+
the main repository's HEAD reference, while
266+
`GIT_REPOSITORY_FOREACH_HEAD_SKIP_WORKTREES` will now skip the
267+
worktree HEAD references.
268+
269+
* The `GIT_OPT_DISABLE_PACK_KEEP_FILE_CHECKS` option can be specified to
270+
`git_libgit2_opts()` to avoid looking for `.keep` files that correspond
271+
to packfiles. This setting can improve performance when packfiles are
272+
stored on high-latency filesystems like network filesystems.
273+
274+
* Blobs can now be filtered with `git_blob_filter`, which allows for
275+
options to be set with `git_blob_filter_options`, including
276+
`GIT_FILTER_NO_SYSTEM_ATTRIBUTES` to disable filtering with system-level
277+
attributes in `/etc/gitattributes` and `GIT_ATTR_CHECK_INCLUDE_HEAD` to
278+
enable filtering with `.gitattributes` files in the HEAD revision.
279+
280+
### API removals
281+
282+
* The unused `git_headlist_cb` function declaration was removed.
283+
284+
* The unused `git_time_monotonic` API is removed.
285+
286+
* The erroneously exported `inttypes.h` header was removed.
3287

4288
# Security Fixes
5289

@@ -82,22 +366,62 @@ v0.28 + 1
82366
"CollisionDetection". If you were using `SHA1_BACKEND` previously, you'll
83367
need to check the value you've used, or switch to the autodetection.
84368

85-
### Changes or improvements
86-
87-
* libgit2 now correctly handles more URLs, such as
88-
`http://example.com:/repo.git` (colon but no port),
89-
`http://example.com` (no path),
90-
and `http://example.com:8080/` (path is /, nonstandard port).
91-
92-
* A carefully constructed commit object with a very large number
93-
of parents may lead to potential out-of-bounds writes or
94-
potential denial of service.
95-
96-
* The ProgramData configuration file is always read for compatibility
97-
with Git for Windows and Portable Git installations. The ProgramData
98-
location is not necessarily writable only by administrators, so we
99-
now ensure that the configuration file is owned by the administrator
100-
or the current user.
369+
### Authors
370+
371+
The following individuals provided changes that were included in this
372+
release:
373+
374+
* Aaron Patterson
375+
* Alberto Fanjul
376+
* Anders Borum
377+
* Augie Fackler
378+
* Augustin Fabre
379+
* Ayush Shridhar
380+
* brian m. carlson
381+
* buddyspike
382+
* Carlos Martín Nieto
383+
* cheese1
384+
* Dan Skorupski
385+
* Daniel Cohen Gindi
386+
* Dave Lee
387+
* David Brooks
388+
* David Turner
389+
* Denis Laxalde
390+
* Dhruva Krishnamurthy
391+
* Dominik Ritter
392+
* Drew DeVault
393+
* Edward Thomson
394+
* Eric Huss
395+
* Erik Aigner
396+
* Etienne Samson
397+
* Gregory Herrero
398+
* Heiko Voigt
399+
* Ian Hattendorf
400+
* Jacques Germishuys
401+
* Janardhan Pulivarthi
402+
* Jason Haslam
403+
* Johannes Schindelin
404+
* Jordan Wallet
405+
* Josh Bleecher Snyder
406+
* kas
407+
* kdj0c
408+
* Laurence McGlashan
409+
* lhchavez
410+
* Lukas Berk
411+
* Max Kostyukevich
412+
* Patrick Steinhardt
413+
* pcpthm
414+
* Remy Suen
415+
* Robert Coup
416+
* romkatv
417+
* Scott Furry
418+
* Sebastian Henke
419+
* Stefan Widgren
420+
* Steve King Jr
421+
* Sven Strickroth
422+
* Tobias Nießen
423+
* Tyler Ang-Wanek
424+
* Tyler Wanek
101425

102426
v0.28
103427
-----

0 commit comments

Comments
 (0)