git2-rs
Rust的libgit2绑定。
[dependencies]
git2 = "0.19.0"
Rust版本要求
git2-rs适用于稳定版Rust,通常也适用于最近的前一个稳定版本。
libgit2版本
目前,该库需要libgit2 1.8.1(或更新的补丁版本)。libgit2的源代码包含在libgit2-sys crate中,因此无需预先安装libgit2库,libgit2-sys crate会为您处理和/或构建它。另一方面,如果存在适当版本的libgit2
,git2
将尝试动态链接它。
更准确地说,如果同时满足以下两个条件,则会静态链接vendored libgit2
:
- 环境变量
LIBGIT2_NO_VENDOR=1
未设置 - 并且要么a) 设置了Cargo feature
vendored-libgit2
,要么b) 系统中找不到适当版本的libgit2
。
特别注意,环境变量会覆盖Cargo feature。
构建git2-rs
$ git clone https://github.com/rust-lang/git2-rs
$ cd git2-rs
$ cargo build
自动化测试
在每次提交时运行测试并处理所有相关的边缘情况很快就会变得繁琐。为了自动化测试并正确处理未暂存更改的暂存和取消暂存,从而避免令人不快的意外,请使用这里的pre-commit钩子,并将其放入.git/hooks/
目录,命名为pre-commit
。您可能需要使用chmod +x
添加执行权限。
对于简单的提交或文档修复,使用git commit --no-verify
可以跳过测试。
在macOS 10.10+上构建
如果启用了ssh
功能(默认情况下是启用的),则该库依赖于libssh2,而libssh2又依赖于OpenSSL。要使OpenSSL正常工作,请按照openssl
crate的说明进行操作。
许可证
本项目采用以下两种许可证之一:
- Apache许可证2.0版(LICENSE-APACHE或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或 https://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您有意提交以包含在git2-rs中的任何贡献,按照Apache-2.0许可证的定义,均应按上述方式双重许可,没有任何附加条款或条件。