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 License,版本 2.0,(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
您可以根据自己的选择使用其中一种。
贡献代码
除非您明确说明其他情况,否则根据 Apache-2.0 许可证的规定,您有意提交以纳入 git2-rs 的任何代码贡献,都应遵循上述双重许可证条款,且不得附加任何其他条款或条件。