Skip to content

libgit2 v1.7.0

Compare
Choose a tag to compare
@ethomson ethomson released this 17 Jul 10:01
· 418 commits to main since this release
3e2baa6

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 the extensions.objectFormat configuration option when the library is built with EXPERIMENTAL_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 with USE_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)
    The git_allocator structure (configurable by the GIT_OPT_SET_ALLOCATOR option) now only contains gmalloc, grealloc and gfree 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.

    • tests: add allocator with limited number of bytes by @ethomson in #6563

Other changes

New features

Performance improvements

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

Documentation improvements

Dependency upgrades

New Contributors

Full Changelog: v1.6.3...v1.7.0