ITADN
rust-lang/git2-rs
rust-lang/git2-rs · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

git2-rs

文档

适用于 Rust 的 libgit2 绑定库。

cargo add git2

功能特性

默认情况下,git2 支持操作本地仓库,但不包含网络功能(例如克隆远程仓库)。如果您想使用需要网络支持的功能,可能需要启用"https"和/或"ssh"功能。如果您要支持用户提供的仓库 URL,那么很可能需要同时启用这两项功能。

cargo add git2 --features https,ssh

Rust 版本要求

git2-rs 支持稳定的 Rust 版本,通常也兼容最新的稳定发布版。

libgit2 的版本

目前该库需要 libgit2 1.9.6(或更高版本的补丁)。libgit2 的源代码已包含在 libgit2-sys crate 中,因此无需预先安装 libgit2 库,libgit2-sys crate 会自动处理并/或为您构建它。另一方面,如果系统中存在合适的 libgit2 版本,git2 会尝试动态链接它。

更准确地说,当同时满足以下两个条件时,内置的 libgit2 会以静态方式链接:

  • 环境变量 LIBGIT2_NO_VENDOR=1 设置
  • 满足以下任一条件:a) 设置了 Cargo 的 vendored-libgit2 功能,或 b) 系统中找不到合适的 libgit2 版本。

特别需要注意的是,环境变量会优先于 Cargo 的功能设置。

构建 git2-rs

$ git clone https://github.com/rust-lang/git2-rs
$ cd git2-rs
$ cargo build

自动化测试

在每次提交时都运行测试并处理所有相关的边界情况,很快就会变得十分繁琐。如果您没有在本地运行测试,可以使用 GitHub 的自动化 CI 在您的提交上执行这些测试。

在 macOS 10.10+ 上构建

如果启用了ssh功能,那么该库将依赖 libssh2,而 libssh2 又依赖于 OpenSSL。要让 OpenSSL 正常工作,请按照openssl crate 的说明操作。

许可证

本项目采用以下两种许可证中的一种进行授权:

您可以根据自己的选择使用其中一种。

贡献代码

除非您明确说明其他情况,否则根据 Apache-2.0 许可证的规定,您有意提交以纳入 git2-rs 的任何代码贡献,都应遵循上述双重许可证条款,且不得附加任何其他条款或条件。