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命令行工具

Download history 124/week @ 2024-05-19 19/week @ 2024-05-26 17/week @ 2024-06-02 6/week @ 2024-06-09 1/week @ 2024-06-16 38/week @ 2024-06-30 4/week @ 2024-07-07 57/week @ 2024-07-28

每月 57 次下载

Apache-2.0

64KB
1K SLoC

gfold

latest release tag crates.io version license build status

gfold 是一个 CLI 工具,帮助您跟踪多个 Git 仓库。

A GIF showcasing gfold in action

如果您希望默认使用经典显示模式,并且避免每次都设置标志,您可以在配置文件中设置它(请参阅 使用方法 部分)。

描述

此应用程序在一个或多个目录中显示多个 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

现在,您可以在您的仓库中更新配置文件,并将链接包括在您的环境设置工作流程中。

安装

Packaging status

Homebrew

您可以使用Homebrew选择两种方法之一来安装gfold

Core (macOS和Linux)

gfold现在可在核心公式中找到!然而,如果在macOS上通过brew安装了coreutils,您可能会遇到命名冲突。有关解决方案和更多信息,请参阅故障排除部分。

brew install gfold

Tap (macOS仅限)

如果您想使用它,tap仍然可用。这可能会改变。

brew install nickgerace/nickgerace/gfold

Arch Linux

您可以使用pacman额外仓库安装gfold

pacman -S gfold

Nix和NixOS

您可以从nixpkgs安装gfold

nix-env --install gfold

如果您使用flakes,您可以直接使用nix命令进行安装。

nix profile install "nixpkgs#gfold"

Cargo

您可以在几乎任何平台上使用cargo来安装crate

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 作为“库”有两种方法。

  1. 使用为 gfold 提供动力的 libgfold crate
  2. 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_BACKTRACERUST_LOG 没有针对 gfold 的特定行为,您可以像在其他项目中一样调整它们以帮助调查。请附上执行的相关日志,并在其中删除 敏感信息,以帮助解决问题。

macOS 上的 Coreutils 冲突

如果通过 brew 在 macOS 上安装了来自 GNU Coreutilsfold,则其名称将变为 gfold。您可以通过 shell 别名、shell 函数和/或 PATH 的更改来避免这种冲突。以下是一个示例,其中已从 gfold 中删除 o

alias gfld=$HOME/.cargo/bin/gfold

上游 libgit2 问题

如果您看到 unsupported extension name extensions.worktreeconfig 或类似的错误,这可能与 libgit2/libgit2#6044 有关。

此存储库的跟踪问题是 #205

社区

有关更多信息,以及感谢贡献者、用户和广大“社区”,请参阅 THANKS 文件。

依赖关系

~14–23MB
~427K SLoC