libgit2 v1.4.0
This is release v1.4.0, "Fisematenten". This release includes several new features and bugfixes, improves compatibility with git, and begins preparation for SHA256 support in a future release.
What's Changed
New features
- diff: update rename limit to 1000 to match git's behavior by @ethomson in #6092
- odb: support checking for object existence without refresh by @joshtriplett in #6107
- object: provide a low-level mechanism to validate whether a raw object is valid (
git_object_rawcontent_is_valid) by @ethomson in #6128 - blob: provide a function to identify binary content by @ethomson in #6142
- status: add
rename_thresholdtogit_status_options. by @arroz in #6158 - remote: support
http.followRedirects(falseandinitial) and follow initial redirects by default by @ethomson in #6175 - remote: support scp style paths with ports (
[git@github.com:22]:libgit2/libgit2) by @ethomson in #6167 - win32: update git for windows configuration file location compatibility by @csware in #6151 and @ethomson in #6180
- refs: speed up packed reference lookups when packed refs are sorted by @ccstolley in #6138
- merge: support zdiff3 conflict styles by @ethomson in #6195
- remote: support fetching by object id (using "+oid:ref" refspec syntax) by @ethomson in #6203
- merge: callers can specify virtual-base building behavior and to optionally accept conflict markers as a resolution by @boretrk in #6204
Deprecated APIs
git_index_checksumis deprecated; this information is now internal to the library and there is no replacementgit_indexer_hashis deprecated; callers should usegit_indexer_nameto retrieve the filenamegit_packbuilder_hashis deprecated; callers should usegit_packbuilder_nameto retrieve the filename
ABI changes
git_fetch_optionsnow includes thefollow_redirectsvaluegit_push_optionsnow includes thefollow_redirectsvaluegit_status_optionsnow includes therename_thresholdvaluegit_transportcontains several changed function pointer signatures
Bug fixes
- Fix a gcc 11 warning in src/threadstate.c by @lhchavez in #6115
- Fix a gcc 11 warning in src/thread.h by @lhchavez in #6116
- cmake: re-enable WinHTTP by @ethomson in #6120
- Fix repo init when template dir is non-existent by @ammgws in #6106
- cmake: use project-specific root variable instead of CMAKE_SOURCE_DIR by @Qix- in #6146
- Better revparse compatibility for at time notation by @yoichi in #6095
- remotes: fix insteadOf/pushInsteadOf handling by @mkhl in #6101
- git_commit_summary: ignore lines with spaces by @stforek in #6125
- Config parsing by @csware in #6124
- config: handle empty conditional in includeIf by @ethomson in #6165
- #6154 git_status_list_new case insensitive fix by @arroz in #6159
- futils_mktmp: don't use umask by @boretrk in #6178
- revparse: support bare '@' by @ethomson in #6196
- odb: check for write failures by @ethomson in #6206
- push: Prepare pack before sending pack header. by @ccstolley in #6205
- mktmp: improve our temp file creation by @ethomson in #6207
- diff_file: fix crash if size of diffed file changes in workdir by @jorio in #6208
- merge: comment conflicts lines in MERGE_MSG by @ethomson in #6197
- Fix crashes in example programs on Windows (sprintf_s not compatible with snprintf) by @apnadkarni in #6212
Code cleanups
- Introduce
git_remote_connect_optionsby @ethomson in #6161 - hash: separate hashes and git_oid by @ethomson in #6082
git_buf: now a public-only API (git_stris our internal API) by @ethomson in #6078- cmake: cleanups and consistency by @ethomson in #6084
- path: refactor utility path functions by @ethomson in #6104
- str: git_str_free is never a function by @ethomson in #6111
- cmake refactorings by @ethomson in #6112
- Add missing-declarations warning globally by @ethomson in #6113
- cmake: further refactorings by @ethomson in #6114
- tag: set validity to 0 by default by @ethomson in #6119
- util: minor cleanup and refactoring to the date class by @ethomson in #6121
- Minor code cleanups by @ethomson in #6122
- Fix a long long that crept past by @NattyNarwhal in #6094
- remote: refactor insteadof application by @ethomson in #6147
- ntmlclient: fix linking with libressl by @boretrk in #6157
- c99: change single bit flags to unsigned by @boretrk in #6179
- Fix typos by @rex4539 in #6164
- diff_driver: split global_drivers array into separate elements by @boretrk in #6184
- cmake: disable some gnu extensions by @boretrk in #6185
- Disabling setting
CMAKE_FIND_LIBRARY_SUFFIXESon Apple platforms. by @arroz in #6153 - C90: add inline macro to xdiff and mbedtls by @boretrk in #6200
- SHA256: early preparation by @ethomson in #6192
CI improvements
- tests: rename test runner to
libgit2_tests, build option toBUILD_TESTS. by @ethomson in #6083 - ci: only update docs on push by @ethomson in #6108
- Pedantic header test by @boretrk in #6086
- ci: build with ssh on nightly by @ethomson in #6148
- ci: improve the name in CI runs by @ethomson in #6198
Documentation improvements
- Document that
git_odbis thread-safe by @joshtriplett in #6109 - Improve documentation by @punkymaniac in #6168
Other changes
- libgit2_clar is now libgit2_tests by @mkhl in #6100
- Remove PSGit from Language Bindings section of README by @cestrand in #6150
- COPYING: remove regex copyright, add PCRE copyright by @ethomson in #6187
- meta: add a release configuration file by @ethomson in #6211
New Contributors
- @mkhl made their first contribution in #6100
- @ammgws made their first contribution in #6106
- @yoichi made their first contribution in #6095
- @stforek made their first contribution in #6125
- @cestrand made their first contribution in #6150
- @rex4539 made their first contribution in #6164
- @jorio made their first contribution in #6208
Full Changelog: v1.3.0...v1.4.0