libgit2 是一个可以在应用程序中使用的跨平台、可链接的 Git 库实现。libgit2 v1.8.0 “Das Fliegende Klassenzimmer” 现已发布。此版本包括对调用 OpenSSH 进行获取和推送的可选实验性支持、执行git commit
默认行为的更简单机制,并对工作树进行了许多改进。此版本还包括许多其他新功能和错误修复。
更新内容如下:
Major changes
-
Executable SSH (OpenSSH) 支持
libgit2 现在可以调用 OpenSSH 命令行,通过 SSH 从远程获取并推送到远程。该支持取代了 libssh2 支持。可通过cmake -DUSE_SSH=exec
配置使用。#6617 -
简化 commit 创建
git_commit_create_from_stage
API 的引入是为了让用户更好地模拟git commit
的行为,而无需提供不必要的信息。#6716 -
Worktree 改进
对 worktree 进行了许多改进,以便更好地与 core git 兼容。首先,libgit2 现在可以理解每个 worktree 的引用。其次,现在支持特定于 worktree 的配置,以及还支持改进的git worktree add
兼容性。#6387、#6202、#5319
Breaking changes
-
添加
WORKTREE
配置级别(ABI 破坏性变更)
为了支持适当级别的 worktree 配置(优先级高于本地配置,但低于特定于应用程序的配置),GIT_CONFIG_LEVEL_WORKTREE
级别被引入到优先级 6。GIT_CONFIG_LEVEL_APP
现在从优先级 7 开始。 -
更改
git_config_entry
(ABI 破坏性变更)git_config_entry
结构现在包含有关backend_type
和origin_path
的信息。未使用的payload
值已被删除。 -
git_push_options
包括远程推送选项(ABI 破坏性变更)
git_push_options
结构现在包含远程推送选项的值。
更多详情可查看发布说明:https://github.com/libgit2/libgit2/releases/tag/v1.8.0