5 个版本 (3 个重大更新)
0.5.0 | 2024 年 6 月 30 日 |
---|---|
0.4.0 | 2024 年 2 月 27 日 |
0.3.0 | 2023 年 2 月 16 日 |
0.1.1 | 2021 年 5 月 9 日 |
0.1.0 | 2021 年 5 月 5 日 |
#783 在 开发工具 中
37KB
905 行
Git Mob (Rust 版本)
git_mob_rs 是 Git Mob 的 Rust 版本。
请参阅他们的 README 和博客以获取更多关于为什么存在此类工具的信息。
我创建这个 Rust 版本是因为我想学习一些 Rust 并将其应用到我在工作中每天使用的工具中。由于我每天都在使用这个工具,所以我并不喜欢 git-mob 的速度。在我看来,设置模板不应该需要 50-120 毫秒,所以我想要通过使用本地实现来使其更快。
这个版本并不是一对一的实现。有关更多详细信息,请参阅 差异。
“嘿,这个 rust 版本 也存在!”实际上,我直到添加这个 README 文件时才搜索本地版本。我可能应该这么做。嗯,如果您需要一个功能更完整的版本,请使用他们的版本!
用法
添加/编辑/删除合著者
$ git edit-coauthors
这将使用您的默认文本编辑器编辑 ~/.config/git-coauthors
(在 Linux 上)。使用以下 JSON 语法创建文件。
{
"coauthors": {
"fl": {
"name": "First Last",
"email": "[email protected]"
}
}
}
以下列出的命令也适用于添加/编辑/删除/打印。
合著者协作
$ git mob fl
或多个
$ git mob fl ab cd ef
重置协作,回到单人模式
$ git solo
安装
Mac
brew install jplsek/tap/git-mob-rs
Linux
请参阅 发布页面 以获取二进制文件或从源代码构建。
Windows
没有安装程序,但有可执行的文件,您可以将其放在某个位置。请参阅 发布页面 或从源代码构建。
Cargo
cargo install git_mob_rs
源代码
git clone https://github.com/jplsek/git-mob-rs && cd git-mob-rs
cargo install --path .
差异
- 默认情况下使用 XDG 配置目录(
~/.config/git-coauthors
)进行配置,如果存在则回退到~/.git-coauthors
。- 设置
GITMOB_COAUTHORS_PATH
环境变量将覆盖此行为。
- 设置
- 由于我主要使用 CLI,因此我不会创建与 git-mob-rs 相关的编辑器插件。
如果有人想添加一些缺失的功能,请随时提交PR!
基准测试
总结:超过15倍速度提升
git-solo
+ hyperfine --warmup 3 -- git-solo target/release/git-solo
Benchmark #1: git-solo
Time (mean ± σ): 80.4 ms ± 22.6 ms [User: 84.4 ms, System: 7.7 ms]
Range (min … max): 70.0 ms … 166.5 ms 40 runs
Benchmark #2: target/release/git-solo
Time (mean ± σ): 4.3 ms ± 0.1 ms [User: 4.4 ms, System: 0.7 ms]
Range (min … max): 4.2 ms … 4.9 ms 497 runs
Summary
'target/release/git-solo' ran
18.52 ± 5.22 times faster than 'git-solo'
git-mob
+ hyperfine --warmup 3 -- 'git-mob ts' 'target/release/git-mob ts'
Benchmark #1: git-mob ts
Time (mean ± σ): 88.5 ms ± 24.4 ms [User: 93.0 ms, System: 8.8 ms]
Range (min … max): 80.1 ms … 223.4 ms 36 runs
Benchmark #2: target/release/git-mob ts
Time (mean ± σ): 4.4 ms ± 0.1 ms [User: 4.4 ms, System: 0.7 ms]
Range (min … max): 4.3 ms … 5.0 ms 510 runs
Summary
'target/release/git-mob ts' ran
20.17 ± 5.59 times faster than 'git-mob ts'
依赖项
~13–24MB
~372K SLoC