This is the first release candidate of libgit2 v0.26.0.
Notable changes since v0.25:
Changes or improvements
-
Support for opening, creating and modifying worktrees.
-
We can now detect SHA1 collisions resulting from the SHAttered attack. These
checks can be enabled at build time via-DUSE_SHA1DC
. -
Fix for missing implementation of
git_merge_driver_source
getters. -
Fix for installed pkg-config file being broken when the prefix contains
spaces. -
We now detect when the hashsum of on-disk objects does not match their
expected hashsum. -
We now support open-ended ranges (e.g. "master..", "...master") in our
revision range parsing code. -
We now correctly compute ignores with leading "/" in subdirectories.
-
We now optionally call
fsync
on loose objects, packfiles and their indexes,
loose references and packed reference files. -
We can now build against OpenSSL v1.1 and against LibreSSL.
-
GIT_MERGE_OPTIONS_INIT
now includes a setting to perform rename detection.
This aligns this structure with the default bygit_merge
and
git_merge_trees
whenNULL
was provided for the options. -
Improvements for reading index v4 files.
-
Perform additional retries for filesystem operations on Windows when files
are temporarily locked by other processes.
API additions
-
New family of functions to handle worktrees:
git_worktree_list()
lets you look up worktrees for a repository.git_worktree_lookup()
lets you get a specific worktree.git_worktree_open_from_repository()
lets you get the associated worktree
of a repository.
a worktree.git_worktree_add
lets you create new worktrees.git_worktree_prune
lets you remove worktrees from disk.git_worktree_lock()
andgit_worktree_unlock()
let you lock
respectively unlock a worktree.git_repository_open_from_worktree()
lets you open a repository viagit_repository_head_for_worktree()
lets you get the currentHEAD
for a
linked worktree.git_repository_head_detached_for_worktree()
lets you check whether a
linked worktree is in detached HEAD mode.
-
git_repository_item_path()
lets you retrieve paths for various repository
files. -
git_repository_commondir()
lets you retrieve the common directory of a
repository. -
git_branch_is_checked_out()
allows you to check whether a branch is checked
out in a repository or any of its worktrees. -
git_repository_submodule_cache_all()
and
git_repository_submodule_cache_clear()
functions allow you to prime or clear
the submodule cache of a repository. -
You can disable strict hash verifications via the
GIT_OPT_ENABLE_STRICT_HASH_VERIFICATION
option withgit_libgit2_opts()
. -
You can enable us calling
fsync
for various files inside the ".git"
directory by setting theGIT_OPT_ENABLE_FSYNC_GITDIR
option with
git_libgit2_opts()
. -
You can now enable "offset deltas" when creating packfiles and negotiating
packfiles with a remote server by settingGIT_OPT_ENABLE_OFS_DELTA
option
withGIT_libgit2_opts()
. -
You can now set the default share mode on Windows for opening files using
GIT_OPT_SET_WINDOWS_SHAREMODE
option withgit_libgit2_opts()
.
You can query the current share mode withGIT_OPT_GET_WINDOWS_SHAREMODE
. -
`git_transport_smart_proxy_options()' enables you to get the proxy options for
smart transports.
Breaking API changes
clone_checkout_strategy
has been removed from
git_submodule_update_option
. The checkout strategy used to clone will
be the same strategy specified incheckout_opts
.