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开发工具

MIT 许可证

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