-
-
Notifications
You must be signed in to change notification settings - Fork 12.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libgit2 1.9.0 #202651
libgit2 1.9.0 #202651
Conversation
Should be able to skip But |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To keep this pull request open, add a |
libgit2-sys needs to be updated to use libgit2 1.9, rust-lang/git2-rs#1109 (it would affect all the rust formulae) for pygit2, waiting this to be released |
db6b993
to
b50931e
Compare
b50931e
to
f1f82cd
Compare
f1f82cd
to
c908009
Compare
c908009
to
fe1564c
Compare
fe1564c
to
b95e3cc
Compare
b95e3cc
to
196dc50
Compare
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
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
andinit
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
andGIT_CHECKOUT_NONE
have been updated.GIT_CHECKOUT_SAFE
is now0
; 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 to0
. 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 afree
member; this was an oversight as end-users should not try to free that structure.Configuration backend function changes (ABI breaking change)
git_config_backend
s should now returngit_config_backend_entry
objects instead ofgit_config_entry
objects. This allows backends to provide a mechanism to nicely free the configuration entries that they provide.What's Changed
New features
The
git_signature_default_from_env
API will now produce a pair ofgit_signature
s representing the author, and the committer, taking theGIT_AUTHOR_NAME
andGIT_COMMITTER_NAME
environment variables into account. Added by @u-quark in Use environment variables when creating signatures libgit2/libgit2#6706packbuilder can now be interrupted from a callback. Added @roberth in Make packbuilder interruptible using progress callback libgit2/libgit2#6874
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 by @ethomson in repo: support the preciousObjects extension libgit2/libgit2#6886Push 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 by @yerseg in push: report a push status even the push has failed libgit2/libgit2#6876
You can now generate a thin pack from a mempack instance using
git_mempack_write_thin_pack
. Added by @roberth in Addgit_mempack_write_thin_pack
libgit2/libgit2#6875The 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 newLIBGIT2_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 to010603
. Added by @HamedMasafi in Add LIBGIT2_VER_CHECK Macro for Version Comparison libgit2/libgit2#6882Custom X509 certificates can be added to OpenSSL's certificate store using the
GIT_OPT_ADD_SSL_X509_CERT
option. Added by @yerseg in ssl: ability to add raw X509 certs to the cert store libgit2/libgit2#6877The libgit2 compatibility CLI now has a
git blame
command. Added by @ethomson in Introduce a blame command libgit2/libgit2#6907Remote callbacks now provide an
update_refs
callback so that users can now get therefspec
of the updated reference during push. This gives more complete information about the remote reference that was updated. Added by @ethomson in remote: add update_refs with git_refspec libgit2/libgit2#6559An optional FIPS-compliant mode for hashing is now available; you can set
-DUSE_SHA256=OpenSSL-FIPS
to enable it. Added by @marcind-dot in Add OpenSSL-FIPS option to USE_SHA256 CMake flag libgit2/libgit2#6906The git-compatible CLI now supports the
git init
command, which has been useful in identifying API improvements and incompatibilities with git. Added by @ethomson in CLI: introduceinit
command libgit2/libgit2#6984Consumers can now query more information about how libgit2 was compiled, and query the "backends" that libgit2 uses. Added by @ethomson in Allow consumers to query the "backends" that libgit2 was built with libgit2/libgit2#6971
Bug fixes
git_hash_ctx_cleanup
ingit_odb_stream
by @gensmusic in odb: conditional git_hash_ctx_cleanup in git_odb_stream libgit2/libgit2#6836on_status
when using the http-parser backend by @civodul in http: Initialize ‘on_status’ when using the http-parser backend. libgit2/libgit2#6870truncate_racily_clean
in index.c by @lstoppa in Leak in truncate_racily_clean in index.c libgit2/libgit2#6884GIT_DIFF_FORMAT_PATCH_HEADER
by @carlosmn in diff: print the file header on GIT_DIFF_FORMAT_PATCH_HEADER libgit2/libgit2#6888git_object_short_id
fails with core.abbrev string values by @lrm29 in object: git_object_short_id fails with core.abbrev string values libgit2/libgit2#6944Security fixes
Code cleanups
free
ptr fromgit_config_entry
by @ethomson in config: removefree
ptr fromgit_config_entry
libgit2/libgit2#6804GIT_WIN32
an internal declaration by @ethomson in MakeGIT_WIN32
an internal declaration libgit2/libgit2#6940template_path
is specified by @ethomson in repo: don't require option whentemplate_path
is specified libgit2/libgit2#6983Benchmarks
Build and CI improvements
Documentation improvements
git_odb_stream_read
return value. by @ehuss in Fix docs for git_odb_stream_read return value. libgit2/libgit2#6837merge_base_many
by @Caleb-T-Owens in Update documentation ofmerge_base_many
libgit2/libgit2#6927refdb_backend
docs by @ethomson in Documentation: update refdb_backend docs libgit2/libgit2#6955git_libgit2_init
by @ethomson in docs: remind people aboutgit_libgit2_init
libgit2/libgit2#6958Git compatibility fixes
.gitattributes
and.gitignore
files to 100 MiB by @csware in Limit .gitattributes and .gitignore files to 100 MiB libgit2/libgit2#6834Dependency updates
Other changes
New Contributors
merge_base_many
libgit2/libgit2#6927Full Changelog: libgit2/libgit2@v1.8.4...v1.9.0