Log message:
libgit2: updated to 1.9.1
libgit2 v1.9.1
Bug fixes
hash: allow unsigned int != size_t in sha256
include: Fix code comment termination
alternates: allow relative paths in all repositories
FIx potential null dereference
cli: fix undefined alloca() on CYGWIN
attr: honor ignorecase in attribute matching
tag: Refuse to use HEAD as a tagname
Fix memory leak in openssl fips modes
Fix circular includes between types.h and oid.h
diff: correct diff stat alignment in presence of renames w/ common prefix.
Revert include path regression
libgit2 v1.9.0
Major changes
Documentation improvements
We've launched a new website for our API reference docs at \
https://libgit2.org/docs/reference/main. To support this, we've updated the \
documentation to ensure that all APIs are well-documented, and added \
docurium-style specifiers to indicate more depth about the API surface.
We now also publish a JSON blob with the API structure and the documentation \
that may be helpful for binding authors.
TLS cipher updates
libgit2 has updated our TLS cipher selection to match the \
"compatibility" cipher suite settings as documented by Mozilla.
Blame improvements
The blame API now contains committer information and commit summaries for blame \
hunks, and the ability to get information about the line of text that was \
modified. In addition, a CLI blame command has been added so that the blame \
functionality can be benchmarked by our benchmark suite.
More CLI commands
libgit2 has added blame and init commands, which have allowed for further \
benchmarking and several API improvements and git compatibility updates.
Warning when configuring without SHA1DC
Users are encouraged to use SHA1DC, which is git's hash; users should not use \
SHA1 in the general case. Users will now be warned if they try to configure \
cmake with a SHA1 backend (-DUSE_SHA1=...).
Breaking changes
There are several ABI-breaking changes that integrators, particularly \
maintainers of bindings or FFI users, may want to be aware of.
Blame hunk structure updates (ABI breaking change)
There are numerous additions to the git_blame_hunk structure to accommodate more \
information about the blame process.
Checkout strategy updates (ABI breaking change)
The values for GIT_CHECKOUT_SAFE and GIT_CHECKOUT_NONE have been updated. \
GIT_CHECKOUT_SAFE is now 0; this was implicitly the default value (with the \
options constructors setting that as the checkout strategy). It is now the \
default if the checkout strategy is set to 0. This allows for an overall code \
simplification in the library.
Configuration entry member removal (ABI breaking change)
The git_config_entry structure no longer contains a free member; this was an \
oversight as end-users should not try to free that structure.
Configuration backend function changes (ABI breaking change)
git_config_backends should now return git_config_backend_entry objects instead \
of git_config_entry objects. This allows backends to provide a mechanism to \
nicely free the configuration entries that they provide.
update_refs callback for remotes (ABI breaking change)
The update_refs callback was added to the git_remote_callbacks structure to \
provide additional information about updated refs; in particular, the \
git_refspec is included for more information about the remote ref. The \
update_refs callback will be preferred over the now deprecated update_tips \
callback.
What's Changed
New features
The git_signature_default_from_env API will now produce a pair of git_signatures \
representing the author, and the committer, taking the GIT_AUTHOR_NAME and \
GIT_COMMITTER_NAME environment variables into account. Added
packbuilder can now be interrupted from a callback. Added @roberth
libgit2 now claims to honor the preciousObject repository extension. This \
extension indicates that the client will never delete objects (in other words, \
will not garbage collect). libgit2 has no functionality to remove objects, so it \
implicitly obeys this in all cases. Added
Push status will be reported even when a push fails. This is useful to give \
information from the server about possible updates, even when the overall status \
failed. Added
You can now generate a thin pack from a mempack instance using \
git_mempack_write_thin_pack. Added
The new LIBGIT2_VERSION_CHECK macro will indicate whether the version of libgit2 \
being compiled against is at least the version specified. For example: #if \
LIBGIT2_VERSION_CHECK(1, 6, 3) is true for libgit2 version 1.6.3 or newer. In \
addition, the new LIBGIT2_VERSION_NUMBER macro will return an integer version \
representing the libgit2 version number. For example, for version 1.6.3, \
LIBGIT2_VERSION_NUMBER will evaluate to 010603. Added
Custom X509 certificates can be added to OpenSSL's certificate store using the \
GIT_OPT_ADD_SSL_X509_CERT option. Added
The libgit2 compatibility CLI now has a git blame command. Added
Remote callbacks now provide an update_refs callback so that users can now get \
the refspec of the updated reference during push. This gives more complete \
information about the remote reference that was updated. Added
An optional FIPS-compliant mode for hashing is now available; you can set \
-DUSE_SHA256=OpenSSL-FIPS to enable it. Added
The git-compatible CLI now supports the git init command, which has been useful \
in identifying API improvements and incompatibilities with git. Added
Consumers can now query more information about how libgit2 was compiled, and \
query the "backends" that libgit2 uses. Added
Bug fixes
Fix constness issue
odb: conditional git_hash_ctx_cleanup in git_odb_stream
Fix shallow root maintenance during fetch
Headers cleanup
http: Initialize on_status when using the http-parser backend
Leak in truncate_racily_clean in index.c
ssh: Omit port option from ssh command unless specified in remote url
diff: print the file header on GIT_DIFF_FORMAT_PATCH_HEADER
Add more robust reporting to SecureTransport errors on macos
transport: do not filter tags based on ref dir in local
push: handle tags to blobs
Fixes for OpenSSL dynamic
realpath: unbreak build on OpenBSD
util/win32: Continue if access is denied when deleting a folder
object: git_object_short_id fails with core.abbrev string values
Clear data after negotiation
smart: ignore shallow/unshallow packets during ACK processing
Security fixes
ssh: Include rsa-sha2-256 and rsa-sha2-512 in the list of hostkey types
TLS: v1.2 and updated cipher list
Code cleanups
checkout: make safe checkout the default
url: track whether url explicitly specified a port
config: remove free ptr from git_config_entry
Add SecCopyErrorMessageString for iOS and update README for iOS
vector: free is now dispose
hashmap: a libgit2-idiomatic khash
hashmap: asserts
hashmap: further asserts
Make GIT_WIN32 an internal declaration
pathspec: additional pathspec wildcard tests
repo: don't require option when template_path is specified
options: update X509 cert constant
|