#git-repository #git #thread-safe #git-version #memory-safe #libgit2 #bindings

git2

libgit2 的绑定,用于与 Git 仓库交互。此库既线程安全又内存安全,允许读取和写入 Git 仓库。

113 个版本

0.19.0 2024年6月14日
0.18.3 2024年3月19日
0.18.2 2024年2月7日
0.18.1 2023年9月20日
0.0.1 2014年11月14日

1 in 开发工具

Download history 249205/week @ 2024-05-04 267155/week @ 2024-05-11 264333/week @ 2024-05-18 269949/week @ 2024-05-25 299015/week @ 2024-06-01 279065/week @ 2024-06-08 278922/week @ 2024-06-15 281839/week @ 2024-06-22 265680/week @ 2024-06-29 287753/week @ 2024-07-06 291574/week @ 2024-07-13 305951/week @ 2024-07-20 300362/week @ 2024-07-27 287596/week @ 2024-08-03 320881/week @ 2024-08-10 286984/week @ 2024-08-17

1,251,122 每月下载量
1,494 个 Crates 中使用 (直接使用 949)

MIT/Apache

6.5MB
165K SLoC

C 142K SLoC // 0.1% comments Rust 23K SLoC // 0.0% comments Python 157 SLoC // 0.0% comments Shell 62 SLoC // 0.1% comments

git2-rs

文档

Rust 的 libgit2 绑定。

[dependencies]
git2 = "0.19.0"

Rust 版本要求

git2-rs 与稳定版 Rust 兼容,并且通常也与最新的先前的稳定版本兼容。

libgit2 的版本

目前此库需要 libgit2 1.7.2(或更新的补丁版本)。libgit2 的源代码包含在 libgit2-sys crate 中,因此不需要预先安装 libgit2 库,libgit2-sys crate 会为你完成这项工作。

您可以通过启用 Cargo 功能 vendored-libgit2 来始终编译并将 libgit2 静态链接到一个副本。有时即使在激活 vendored-libgit2 的情况下,也需要在系统中找到并使用 libgit2。在这种情况下,您应设置环境变量 LIBGIT2_NO_VENDOR=1

构建 git2-rs

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

自动化测试

在每次提交时运行测试和处理所有相关的边缘情况很快就会变得繁琐。为了自动化测试和处理未提交更改的正确暂存和取消暂存,从而避免意外的糟糕情况,请使用此处找到的预提交钩子 here,并将其放置在 .git/hooks/ 中,名称为 pre-commit。您可能需要使用 chmod +x 添加执行权限。

要跳过简单提交或文档修复的测试,请使用以下命令:git commit --no-verify

在macOS 10.10+上构建

如果启用了 ssh 功能(默认启用),则此库依赖于libssh2,而libssh2依赖于OpenSSL。要使OpenSSL工作,请遵循openssl 包的说明

许可证

此项目可根据您的选择使用以下任一许可证:

任选其一。

贡献

除非您明确声明,否则您提交给git2-rs的任何有意贡献,根据Apache-2.0许可证的定义,应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~2–3.5MB
~92K SLoC