This is release v1.7.0, "Kleine Raupe Nimmersatt". This release adds shallow clone support, completes the experimental SHA256 support, adds Schannel support for Windows, and includes many other newj features and bugfixes.
Major changes
-
Shallow clone support
libgit2 now supports shallow clone and shallow repositories, thanks to a significant investment from many community members -- hundreds of commits by many contributors. -
SHA256 support
libgit2 should now support SHA256 repositories using theextensions.objectFormat
configuration option when the library is built withEXPERIMENTAL_SHA256=ON
. Users are encouraged to begin testing their applications with this option and provide bug reports and feedback. This is a breaking API change; SHA256 support will be enabled by default in libgit2 v2.0. -
Schannel and SSPI for Windows
libgit2 now supports the Windows Schannel and SSPI APIs for HTTPS support on Windows, when configured withUSE_HTTPS=Schannel
. Setting this option will not use the existing WinHTTP support, but will use libgit2's standard HTTP client stack with Windows TLS primitives. Windows users are encouraged to begin testing their applications with this option and provide bug reports and feedback. This will be enabled by default in a future version of libgit2.
Breaking changes
-
Simplify custom pluggable allocator (System API / ABI breaking change)
Thegit_allocator
structure (configurable by theGIT_OPT_SET_ALLOCATOR
option) now only containsgmalloc
,grealloc
andgfree
members. This simplifies both the work needed by an implementer and allows more flexibility and correctness in libgit2 itself, especially during out-of-memory situations and errors during bootstrapping.
Other changes
New features
- repo: honor environment variables for more scenarios by @ethomson in #6544
- Introduce timeouts on sockets by @ethomson in #6535
Performance improvements
- midx: do not try to look at every object in the index by @carlosmn in #6585
- Partial fix for #6532: insert-by-date order. by @arroz in #6539
Bug fixes
- repo: don't allow repeated extensions by @ethomson in #6505
- config: return
GIT_ENOTFOUND
for missing programdata by @ethomson in #6547 - Fix missing oid type for "fake" repositories by @oreiche in #6554
- Thread-local storage: handle failure cases by @ethomson in #5722
- midx: allow unknown chunk ids in multi-pack index files by @carlosmn in #6583
- pack: cast the number of objects to size_t by @carlosmn in #6584
- Fixes #6344: git_branch_move now renames the reflog instead of deleting. by @arroz in #6345
- #6576 git_diff_index_to_workdir reverse now loads untracked content by @arroz in #6577
Build and CI improvements
- meta: the main branch is now v1.7.0 by @ethomson in #6516
- xdiff: move xdiff to 'deps' by @ethomson in #6482
- util: detect all possible qsort_r and qsort_s variants by @DimitryAndric in #6555
- Work around -Werror problems when detecting qsort variants by @DimitryAndric in #6558
- actions: simplify execution with composite action by @ethomson in #6488
- CMake: Search for ssh2 instead of libssh2. by @Faless in #6586
Documentation improvements
- docs: fix IRC server from freenode to libera by @vincenzopalazzo in #6590
Dependency upgrades
- Update xdiff to git 2.40.1's version by @ethomson in #6561
- deps: update pcre to 8.45 by @ethomson in #6593
New Contributors
- @oreiche made their first contribution in #6554
- @DimitryAndric made their first contribution in #6555
- @vincenzopalazzo made their first contribution in #6590
- @Faless made their first contribution in #6586
Full Changelog: v1.6.3...v1.7.0