50 个版本 (29 个稳定版)
4.5.0 | 2024 年 5 月 23 日 |
---|---|
4.4.1 | 2023 年 12 月 24 日 |
4.4.0 | 2023 年 6 月 26 日 |
4.3.2 | 2023 年 3 月 10 日 |
0.8.0 | 2020 年 11 月 26 日 |
#38 在 命令行工具
每月 57 次下载
64KB
1K SLoC
gfold
gfold
是一个 CLI 工具,帮助您跟踪多个 Git 仓库。
如果您希望默认使用经典显示模式,并且避免每次都设置标志,您可以在配置文件中设置它(请参阅 使用方法 部分)。
描述
此应用程序在一个或多个目录中显示多个 Git 仓库的相关信息。它只从文件系统中读取,永远不会写入它。虽然这个工具在范围和目的上可能看起来有限,但这是有意为之的。
默认情况下,gfold
通过从当前工作目录进行遍历来查看每个 Git 仓库。如果您想针对另一个目录,可以将它的路径(相对或绝对)作为第一个参数传递或在配置文件中更改默认路径。
遍历后,gfold
利用 rayon 对检测到的所有 Git 仓库执行并发、只读分析。分析通过利用 git2-rs 库来执行。
使用方法
提供 -h/--help
标志,查看此应用程序的所有选项。
# Operate in the current working directory or in the location provided by a config file, if one exists.
gfold
# Operate in the parent directory.
gfold ..
# Operate in the home directory (first method).
gfold $HOME
# Operate in the home directory (second method).
gfold ~/
# Operate with an absolute path.
gfold /this/is/an/absolute/path
# Operate with a relative path.
gfold ../../this/is/a/relative/path
配置文件
如果您经常提供相同的参数,您可以创建并使用配置文件。默认情况下,gfold
不包含配置文件,并且配置文件是完全可选的。
它是如何工作的?在执行时,gfold
将在 macOS、Linux 和类似操作系统中以下路径查找配置文件。
$HOME/.config/gfold.toml
在 Windows 上,查找路径将在类似的位置。
{FOLDERID_Profile}\.config\gfold.toml
对于配置文件创建,您可以使用 --dry-run
标志来打印有效的 TOML。以下是在 macOS、Linux 和类似平台上的示例配置文件创建工作流程
gfold -d classic -c never ~/ --dry-run > $HOME/.config/gfold.toml
以下是生成的配置文件的内容
path = '/home/neloth'
display_mode = 'Classic'
color_mode = 'Never'
假设您创建了一个配置文件,但想用完全不同的设置来执行gfold
,并且您想确保您不会意外地从配置文件继承选项。在这种情况下,您可以通过使用-i
标志来忽略配置文件。
gfold -i
您可以使用相同的标志来将配置文件恢复到默认设置。
gfold -i > $HOME/.config/gfold.toml
此外,您可以在一次操作中忽略现有的配置文件、配置特定的选项,并为未指定的选项使用默认值。以下是一个示例,其中我们想使用经典显示模式,并用默认值覆盖所有其他设置:
gfold -i -d classic > $HOME/.config/gfold.toml
您可以使用git
来备份配置文件并跟踪其历史记录。在macOS、Linux和大多数系统上,您可以将文件链接回一个git
仓库。
ln -s <path-to-repository>/gfold.toml $HOME/.config/gfold.toml
现在,您可以在您的仓库中更新配置文件,并将链接包括在您的环境设置工作流程中。
安装
Homebrew
您可以使用Homebrew选择两种方法之一来安装gfold
。
Core (macOS和Linux)
gfold
现在可在核心公式中找到!然而,如果在macOS上通过brew
安装了coreutils,您可能会遇到命名冲突。有关解决方案和更多信息,请参阅故障排除部分。
brew install gfold
Tap (macOS仅限)
如果您想使用它,tap仍然可用。这可能会改变。
brew install nickgerace/nickgerace/gfold
Arch Linux
pacman -S gfold
Nix和NixOS
您可以从nixpkgs安装gfold
。
nix-env --install gfold
如果您使用flakes,您可以直接使用nix
命令进行安装。
nix profile install "nixpkgs#gfold"
Cargo
cargo install gfold
如果希望Cargo使用--locked
标志,请使用Cargo.lock
。
cargo install --locked gfold
使用cargo-update,保持crate更新非常简单。
cargo install cargo-update
cargo install-update -a
下载二进制文件
如果您不想使用上述安装方法也不想克隆仓库,您可以从发布页面下载二进制文件。有关如何操作的示例,请参阅手动安装指南。
从源码构建
如果您想了解如何从源码构建的示例,请参阅手动安装指南。
未列出首选安装方法?
请提交问题!
兼容性
gfold
旨在在任何一级Rust 🦀目标上运行。如果您的平台不受支持,请提交问题。
作为库使用
使用 gfold
作为“库”有两种方法。
- 使用为
gfold
提供动力的libgfold
crate - 从
gfold -d json
消费有效的 JSON 结果(不是库,但适用于非 Rust 应用程序)
故障排除和已知问题
如果您遇到意外行为或错误,并且想了解更多详细信息,请使用以下环境变量运行 gfold
# You may also want to add relevant arg(s) and flag(s).
RUST_BACKTRACE=1 RUST_LOG=debug gfold
如果问题仍然存在,请 提交问题。
调整环境变量
由于 RUST_BACKTRACE
和 RUST_LOG
没有针对 gfold
的特定行为,您可以像在其他项目中一样调整它们以帮助调查。请附上执行的相关日志,并在其中删除 敏感信息,以帮助解决问题。
macOS 上的 Coreutils 冲突
如果通过 brew
在 macOS 上安装了来自 GNU Coreutils 的 fold
,则其名称将变为 gfold
。您可以通过 shell 别名、shell 函数和/或 PATH
的更改来避免这种冲突。以下是一个示例,其中已从 gfold
中删除 o
alias gfld=$HOME/.cargo/bin/gfold
上游 libgit2
问题
如果您看到 unsupported extension name extensions.worktreeconfig
或类似的错误,这可能与 libgit2/libgit2#6044 有关。
此存储库的跟踪问题是 #205。
社区
有关更多信息,以及感谢贡献者、用户和广大“社区”,请参阅 THANKS 文件。
- NixOS、Arch Linux 等的软件包
- “一百个 Rust 二进制文件” 文章,其中介绍了
gfold
- nvim-gfold.lua,一个
neovim
插件,用于gfold
(公告 Reddit 帖子)
依赖关系
~14–23MB
~427K SLoC