|
| 1 | +v1.8 |
| 2 | +---- |
| 3 | + |
| 4 | +This is release v1.8.0, "Das Fliegende Klassenzimmer". This release |
| 5 | +includes optional, experimental support for invoking OpenSSH to fetch |
| 6 | +and push, an easier mechanism to perform the default behavior of |
| 7 | +`git commit`, and has many improvements for worktrees. This release |
| 8 | +also includes many other new features and bugfixes. |
| 9 | + |
| 10 | +## Major changes |
| 11 | + |
| 12 | +* **Executable SSH (OpenSSH) support** |
| 13 | + libgit2 can now invoke the command-line OpenSSH to fetch from and push |
| 14 | + to remotes over SSH. This support takes the place of libssh2 support. |
| 15 | + To use it, configure libgit2 with `cmake -DUSE_SSH=exec`, and please |
| 16 | + report any problems that you discover. By @ethomson in |
| 17 | + https://github.com/libgit2/libgit2/pull/6617 |
| 18 | + |
| 19 | +* **Simplified commit creation** |
| 20 | + The `git_commit_create_from_stage` API was introduced to allow users to |
| 21 | + better emulate the behavior of `git commit` without needing to provide |
| 22 | + unnecessary information. The current state of the index is committed to |
| 23 | + the current branch. By @ethomson in |
| 24 | + https://github.com/libgit2/libgit2/pull/6716 |
| 25 | + |
| 26 | +* **Worktree improvements** |
| 27 | + A number of worktree improvements have been made for better |
| 28 | + compatibility with core git. First, libgit2 now understands per-worktree |
| 29 | + references, thanks to @csware in |
| 30 | + https://github.com/libgit2/libgit2/pull/6387. Worktree-specific |
| 31 | + configuration is now supported, thanks to @vermiculus in |
| 32 | + https://github.com/libgit2/libgit2/pull/6202. And improved compatibility |
| 33 | + with `git worktree add` is now supported, thanks to @herrerog in |
| 34 | + https://github.com/libgit2/libgit2/pull/5319. |
| 35 | + |
| 36 | +## Breaking changes |
| 37 | + |
| 38 | +* **Adding `WORKTREE` configuration level** (ABI breaking change) |
| 39 | + To support worktree configurations at the appropriate level (higher |
| 40 | + priority than local configuration, but lower priority than app-specific |
| 41 | + configuration), the `GIT_CONFIG_LEVEL_WORKTREE` level was introduced at |
| 42 | + priority 6. `GIT_CONFIG_LEVEL_APP` now begins at priority 7. |
| 43 | + |
| 44 | +* **Changes to `git_config_entry`** (ABI breaking change) |
| 45 | + The `git_config_entry` structure now contains information about the |
| 46 | + `backend_type` and `origin_path`. The unused `payload` value has been |
| 47 | + removed. |
| 48 | + |
| 49 | +* **`git_push_options` includes remote push options** (ABI breaking change) |
| 50 | + The `git_push_options` structure now contains a value for remote push |
| 51 | + options. |
| 52 | + |
| 53 | +## Other changes |
| 54 | + |
| 55 | +### New features |
| 56 | + |
| 57 | +* config: provide an "origin" for config entries by @ethomson in |
| 58 | + https://github.com/libgit2/libgit2/pull/6615 |
| 59 | +* cli: add a `git config` command by @ethomson in |
| 60 | + https://github.com/libgit2/libgit2/pull/6616 |
| 61 | +* Add OpenSSH support by @ethomson in |
| 62 | + https://github.com/libgit2/libgit2/pull/6617 |
| 63 | +* remote: optionally report unchanged tips by @ethomson in |
| 64 | + https://github.com/libgit2/libgit2/pull/6645 |
| 65 | +* Support setting oid type for in-memory repositories by @kcsaul in |
| 66 | + https://github.com/libgit2/libgit2/pull/6671 |
| 67 | +* cli: add `index-pack` command by @ethomson in |
| 68 | + https://github.com/libgit2/libgit2/pull/6681 |
| 69 | +* Add `git_repository_commit_parents` to identify the parents of the next |
| 70 | + commit given the repository state by @ethomson in |
| 71 | + https://github.com/libgit2/libgit2/pull/6707 |
| 72 | +* commit: introduce `git_commit_create_from_stage` by @ethomson in |
| 73 | + https://github.com/libgit2/libgit2/pull/6716 |
| 74 | +* set SSH timeout by @vafada in |
| 75 | + https://github.com/libgit2/libgit2/pull/6721 |
| 76 | +* Implement push options on push by @russell in |
| 77 | + https://github.com/libgit2/libgit2/pull/6439 |
| 78 | +* Support index.skipHash true config by @parnic in |
| 79 | + https://github.com/libgit2/libgit2/pull/6738 |
| 80 | +* worktree: mimic 'git worktree add' behavior. by @herrerog in |
| 81 | + https://github.com/libgit2/libgit2/pull/5319 |
| 82 | +* Support the extension for worktree-specific config by @vermiculus in |
| 83 | + https://github.com/libgit2/libgit2/pull/6202 |
| 84 | +* Separate config reader and writer backend priorities (for worktree |
| 85 | + configs) by @ethomson in https://github.com/libgit2/libgit2/pull/6756 |
| 86 | +* fetch: enable deepening/shortening shallow clones by @kempniu in |
| 87 | + https://github.com/libgit2/libgit2/pull/6662 |
| 88 | + |
| 89 | +### Bug fixes |
| 90 | + |
| 91 | +* repository: make cleanup safe for re-use with grafts by @carlosmn in |
| 92 | + https://github.com/libgit2/libgit2/pull/6600 |
| 93 | +* fix: Add missing include for `oidarray`. by @dvzrv in |
| 94 | + https://github.com/libgit2/libgit2/pull/6608 |
| 95 | +* ssh: fix `known_hosts` leak in `_git_ssh_setup_conn` by @steven9724 in |
| 96 | + https://github.com/libgit2/libgit2/pull/6599 |
| 97 | +* proxy: Return an error for invalid proxy URLs instead of crashing by |
| 98 | + @lrm29 in https://github.com/libgit2/libgit2/pull/6597 |
| 99 | +* errors: refactoring - never return `NULL` in `git_error_last()` by |
| 100 | + @ethomson in https://github.com/libgit2/libgit2/pull/6625 |
| 101 | +* Reject potential option injections over ssh by @carlosmn in |
| 102 | + https://github.com/libgit2/libgit2/pull/6636 |
| 103 | +* remote: fix memory leak in `git_remote_download()` by @7Ji in |
| 104 | + https://github.com/libgit2/libgit2/pull/6651 |
| 105 | +* git2: Fix crash when called w/o parameters by @csware in |
| 106 | + https://github.com/libgit2/libgit2/pull/6673 |
| 107 | +* Avoid macro redefinition of `ENABLE_INTSAFE_SIGNED_FUNCTIONS` by @csware |
| 108 | + in https://github.com/libgit2/libgit2/pull/6666 |
| 109 | +* util: suppress some uninitialized variable warnings by @boretrk in |
| 110 | + https://github.com/libgit2/libgit2/pull/6659 |
| 111 | +* push: set generic error in `push_negotiation` cb by @ethomson in |
| 112 | + https://github.com/libgit2/libgit2/pull/6675 |
| 113 | +* process: test `/usr/bin/false` on BSDs by @ethomson in |
| 114 | + https://github.com/libgit2/libgit2/pull/6677 |
| 115 | +* clone: don't mix up "http://url" with "http:/url" when figuring out if we |
| 116 | + should do a local clone by @boretrk in |
| 117 | + https://github.com/libgit2/libgit2/pull/6361 |
| 118 | +* Several compatibility fixes by @ethomson in |
| 119 | + https://github.com/libgit2/libgit2/pull/6678 |
| 120 | +* Git blame buffer gives the wrong result in many cases where there are |
| 121 | + by @thosey in https://github.com/libgit2/libgit2/pull/6572 |
| 122 | +* Fix 'path cannot exist in repository' during diff for in-memory repository |
| 123 | + by @kcsaul in https://github.com/libgit2/libgit2/pull/6683 |
| 124 | +* process: don't try to close the status by @ethomson in |
| 125 | + https://github.com/libgit2/libgit2/pull/6693 |
| 126 | +* Minor bug fixes by @ethomson in |
| 127 | + https://github.com/libgit2/libgit2/pull/6695 |
| 128 | +* Bypass shallow clone support for in-memory repositories by @kcsaul in |
| 129 | + https://github.com/libgit2/libgit2/pull/6684 |
| 130 | +* examples: use `unsigned` int for bitfields by @ethomson in |
| 131 | + https://github.com/libgit2/libgit2/pull/6699 |
| 132 | +* Fix some bugs caught by UBscan by @ethomson in |
| 133 | + https://github.com/libgit2/libgit2/pull/6700 |
| 134 | +* `git_diff_find_similar` doesn't always remove unmodified deltas by @yori |
| 135 | + in https://github.com/libgit2/libgit2/pull/6642 |
| 136 | +* httpclient: clear `client->parser.data` after use by @ethomson in |
| 137 | + https://github.com/libgit2/libgit2/pull/6705 |
| 138 | +* Do not normalize `safe.directory` paths by @csware in |
| 139 | + https://github.com/libgit2/libgit2/pull/6668 |
| 140 | +* clone: don't swallow error in `should_checkout` by @ethomson in |
| 141 | + https://github.com/libgit2/libgit2/pull/6727 |
| 142 | +* Correct index add directory/file conflict detection by @ethomson in |
| 143 | + https://github.com/libgit2/libgit2/pull/6729 |
| 144 | +* Correct `git_revparse_single` and add revparse fuzzing by @ethomson in |
| 145 | + https://github.com/libgit2/libgit2/pull/6730 |
| 146 | +* config: properly delete or rename section containing multivars by |
| 147 | + @samueltardieu in https://github.com/libgit2/libgit2/pull/6723 |
| 148 | +* revparse: ensure bare '@' is truly bare by @ethomson in |
| 149 | + https://github.com/libgit2/libgit2/pull/6742 |
| 150 | +* repo: ensure we can initialize win32 paths by @ethomson in |
| 151 | + https://github.com/libgit2/libgit2/pull/6743 |
| 152 | +* Swap `GIT_DIFF_LINE_(ADD|DEL)_EOFNL` to match other Diffs by @xphoniex in |
| 153 | + https://github.com/libgit2/libgit2/pull/6240 |
| 154 | +* diff: fix test for SHA256 support in `diff_from_buffer` by @ethomson in |
| 155 | + https://github.com/libgit2/libgit2/pull/6745 |
| 156 | +* http: support empty http.proxy config setting by @ethomson in |
| 157 | + https://github.com/libgit2/libgit2/pull/6744 |
| 158 | +* More `safe.directory` improvements by @ethomson in |
| 159 | + https://github.com/libgit2/libgit2/pull/6739 |
| 160 | +* Ensure that completely ignored diff is empty by @ethomson in |
| 161 | + https://github.com/libgit2/libgit2/pull/5893 |
| 162 | +* Fix broken regexp that matches submodule names containing ".path" by |
| 163 | + @csware in https://github.com/libgit2/libgit2/pull/6749 |
| 164 | +* Fix memory leaks by @csware in |
| 165 | + https://github.com/libgit2/libgit2/pull/6748 |
| 166 | +* Make `refdb_fs` (hopefully) fully aware of per worktree refs by @csware in |
| 167 | + https://github.com/libgit2/libgit2/pull/6387 |
| 168 | +* fix log example by @albfan in https://github.com/libgit2/libgit2/pull/6359 |
| 169 | +* fetch: fail on depth for local transport by @ethomson in |
| 170 | + https://github.com/libgit2/libgit2/pull/6757 |
| 171 | +* Fix message trailer parsing by @ethomson in |
| 172 | + https://github.com/libgit2/libgit2/pull/6761 |
| 173 | +* config: correct fetching the `HIGHEST_LEVEL` config by @ethomson in |
| 174 | + https://github.com/libgit2/libgit2/pull/6766 |
| 175 | + |
| 176 | +### Build and CI improvements |
| 177 | + |
| 178 | +* meta: update version numbers to v1.8 by @ethomson in |
| 179 | + https://github.com/libgit2/libgit2/pull/6596 |
| 180 | +* Revert "CMake: Search for ssh2 instead of libssh2." by @ethomson in |
| 181 | + https://github.com/libgit2/libgit2/pull/6619 |
| 182 | +* cmake: fix openssl build on win32 by @lazka in |
| 183 | + https://github.com/libgit2/libgit2/pull/6626 |
| 184 | +* ci: retry flaky online tests by @ethomson in |
| 185 | + https://github.com/libgit2/libgit2/pull/6628 |
| 186 | +* ci: update to macOS 12 by @ethomson in |
| 187 | + https://github.com/libgit2/libgit2/pull/6629 |
| 188 | +* Use `#!/bin/bash` for script with bash-specific commands by @roehling in |
| 189 | + https://github.com/libgit2/libgit2/pull/6581 |
| 190 | +* ci: overwrite nonsense in `/usr/local` during macOS setup by @ethomson in |
| 191 | + https://github.com/libgit2/libgit2/pull/6664 |
| 192 | +* release: add a compatibility label by @ethomson in |
| 193 | + https://github.com/libgit2/libgit2/pull/6676 |
| 194 | +* actions: set permissions by @ethomson in |
| 195 | + https://github.com/libgit2/libgit2/pull/6680 |
| 196 | +* cmake: rename FindIconv to avoid collision with cmake by @ethomson in |
| 197 | + https://github.com/libgit2/libgit2/pull/6682 |
| 198 | +* ci: allow workflows to read and write packages by @ethomson in |
| 199 | + https://github.com/libgit2/libgit2/pull/6687 |
| 200 | +* ci: allow workflows to push changes by @ethomson in |
| 201 | + https://github.com/libgit2/libgit2/pull/6688 |
| 202 | +* tests: remove test for strcasecmp by @boretrk in |
| 203 | + https://github.com/libgit2/libgit2/pull/6691 |
| 204 | +* CI fixes by @ethomson in |
| 205 | + https://github.com/libgit2/libgit2/pull/6694 |
| 206 | +* ci: improvements to prepare for Cygwin support by @ethomson in |
| 207 | + https://github.com/libgit2/libgit2/pull/6696 |
| 208 | +* Yet more CI improvements by @ethomson in |
| 209 | + https://github.com/libgit2/libgit2/pull/6697 |
| 210 | +* Fix nightly builds by @ethomson in |
| 211 | + https://github.com/libgit2/libgit2/pull/6709 |
| 212 | +* Benchmarks: add a site to view results by @ethomson in |
| 213 | + https://github.com/libgit2/libgit2/pull/6715 |
| 214 | +* `GIT_RAND_GETENTROPY`: do not include `sys/random.h` by @semarie in |
| 215 | + https://github.com/libgit2/libgit2/pull/6736 |
| 216 | +* add dl to `LIBGIT2_SYSTEM_LIBS` by @christopherfujino in |
| 217 | + https://github.com/libgit2/libgit2/pull/6631 |
| 218 | +* meta: add dependency tag to release.yml by @ethomson in |
| 219 | + https://github.com/libgit2/libgit2/pull/6740 |
| 220 | +* CI: fix our nightlies by @ethomson in |
| 221 | + https://github.com/libgit2/libgit2/pull/6751 |
| 222 | +* trace: Re-enable tests as tracing is now enabled by default by @lrm29 in |
| 223 | + https://github.com/libgit2/libgit2/pull/6752 |
| 224 | +* tests: don't free an unininitialized repo by @ethomson in |
| 225 | + https://github.com/libgit2/libgit2/pull/6763 |
| 226 | +* ci: reduce ASLR randomization for TSAN by @ethomson in |
| 227 | + https://github.com/libgit2/libgit2/pull/6764 |
| 228 | +* packbuilder: adjust nondeterministic tests by @ethomson in |
| 229 | + https://github.com/libgit2/libgit2/pull/6762 |
| 230 | +* Allow libgit2 to be compiled with mbedtls3. by @adamharrison in |
| 231 | + https://github.com/libgit2/libgit2/pull/6759 |
| 232 | +* build: update to latest actions versions by @ethomson in |
| 233 | + https://github.com/libgit2/libgit2/pull/6765 |
| 234 | +* ctype: cast characters to unsigned when classifying characters by |
| 235 | + @boretrk in https://github.com/libgit2/libgit2/pull/6679 and |
| 236 | + @ethomson in https://github.com/libgit2/libgit2/pull/6770 |
| 237 | + |
| 238 | +### Documentation improvements |
| 239 | + |
| 240 | +* README.md: Fix link to conan packages by @lrm29 in |
| 241 | + https://github.com/libgit2/libgit2/pull/6621 |
| 242 | +* README: replace gmaster with GitButler by @ethomson in |
| 243 | + https://github.com/libgit2/libgit2/pull/6692 |
| 244 | +* blame example: Fix support for line range in CLI by @wetneb in |
| 245 | + https://github.com/libgit2/libgit2/pull/6638 |
| 246 | +* Support authentication in push example by @pluehne in |
| 247 | + https://github.com/libgit2/libgit2/pull/5904 |
| 248 | +* docs: fix mistake in attr.h by @DavHau in |
| 249 | + https://github.com/libgit2/libgit2/pull/6714 |
| 250 | +* Fix broken links by @csware in |
| 251 | + https://github.com/libgit2/libgit2/pull/6747 |
| 252 | + |
| 253 | +### Platform compatibility fixes |
| 254 | + |
| 255 | +* stransport: macOS: replace `errSSLNetworkTimeout`, with hard-coded |
| 256 | + value by @mascguy in https://github.com/libgit2/libgit2/pull/6610 |
| 257 | + |
| 258 | +### Git compatibility fixes |
| 259 | + |
| 260 | +* Do not trim dots from usernames by @georgthegreat in |
| 261 | + https://github.com/libgit2/libgit2/pull/6657 |
| 262 | +* merge: fix incorrect rename detection for empty files by @herrerog in |
| 263 | + https://github.com/libgit2/libgit2/pull/6717 |
| 264 | + |
| 265 | +### Dependency updates |
| 266 | + |
| 267 | +* zlib: upgrade bundled zlib to v1.3 by @ethomson in |
| 268 | + https://github.com/libgit2/libgit2/pull/6698 |
| 269 | +* ntlmclient: update to latest upstream ntlmclient by @ethomson in |
| 270 | + https://github.com/libgit2/libgit2/pull/6704 |
| 271 | + |
| 272 | +## New Contributors |
| 273 | + |
| 274 | +* @dvzrv made their first contribution in |
| 275 | + https://github.com/libgit2/libgit2/pull/6608 |
| 276 | +* @mascguy made their first contribution in |
| 277 | + https://github.com/libgit2/libgit2/pull/6610 |
| 278 | +* @steven9724 made their first contribution in |
| 279 | + https://github.com/libgit2/libgit2/pull/6599 |
| 280 | +* @lazka made their first contribution in |
| 281 | + https://github.com/libgit2/libgit2/pull/6626 |
| 282 | +* @roehling made their first contribution in |
| 283 | + https://github.com/libgit2/libgit2/pull/6581 |
| 284 | +* @7Ji made their first contribution in |
| 285 | + https://github.com/libgit2/libgit2/pull/6651 |
| 286 | +* @kempniu made their first contribution in |
| 287 | + https://github.com/libgit2/libgit2/pull/6662 |
| 288 | +* @thosey made their first contribution in |
| 289 | + https://github.com/libgit2/libgit2/pull/6572 |
| 290 | +* @wetneb made their first contribution in |
| 291 | + https://github.com/libgit2/libgit2/pull/6638 |
| 292 | +* @yori made their first contribution in |
| 293 | + https://github.com/libgit2/libgit2/pull/6642 |
| 294 | +* @pluehne made their first contribution in |
| 295 | + https://github.com/libgit2/libgit2/pull/5904 |
| 296 | +* @DavHau made their first contribution in |
| 297 | + https://github.com/libgit2/libgit2/pull/6714 |
| 298 | +* @vafada made their first contribution in |
| 299 | + https://github.com/libgit2/libgit2/pull/6721 |
| 300 | +* @semarie made their first contribution in |
| 301 | + https://github.com/libgit2/libgit2/pull/6736 |
| 302 | +* @christopherfujino made their first contribution in |
| 303 | + https://github.com/libgit2/libgit2/pull/6631 |
| 304 | +* @parnic made their first contribution in |
| 305 | + https://github.com/libgit2/libgit2/pull/6738 |
| 306 | +* @samueltardieu made their first contribution in |
| 307 | + https://github.com/libgit2/libgit2/pull/6723 |
| 308 | +* @xphoniex made their first contribution in |
| 309 | + https://github.com/libgit2/libgit2/pull/6240 |
| 310 | +* @adamharrison made their first contribution in |
| 311 | + https://github.com/libgit2/libgit2/pull/6759 |
| 312 | + |
| 313 | +**Full Changelog**: https://github.com/libgit2/libgit2/compare/v1.7.0...v1.8.0 |
| 314 | + |
1 | 315 | v1.7
|
2 | 316 | ----
|
3 | 317 |
|
|
0 commit comments