1.0.4 |
|
---|---|
1.0.3 |
|
1.0.2 |
|
1.0.1 |
|
#72 in #keep
8KB
151 代码行
gfold
gfold
是一个由命令行驱动的应用程序,可以帮助您跟踪多个Git仓库。
user at hostname in ~/git
% gfold
great-journey unclean main git@github.com:truth/great-journey.git
installation-zero bare main https://github.com/the-ark/installation-zero.git
sierra unpushed dev https://github.com/forward-unto-dawn/sierra.git
spark clean issue343 git@github.com:guilty/spark.git
tartarus unclean delta git@github.com:covenant/tartarus.git
voi clean main https://github.com/earth/voi.git
描述和动机
此应用程序在单个或多个目录中显示多个Git仓库的相关信息。虽然这个工具在范围和目的上可能看起来有限,但这是有意为之。
它按字母顺序打印每个仓库,并根据最长目录、分支和状态字符串进行填充。默认情况下,gfold
查看当前工作目录中的每个Git仓库。但是,如果您想针对另一个目录,可以将该路径(相对或绝对)作为第一个参数传递。
我应该使用gfold
还是gfld
?
gfld
是gfold
的新版本,是最小化的版本。它只包含一个可配置的选项(一个可选的单个命令行参数用于目标路径)并且比原始应用程序体积小得多。
它旨在为原始应用程序的粉丝提供近乎无需配置的使用体验和更小的系统占用空间。它不保证更快的运行时性能,但实现了前两个目标。
与原始应用程序相比有两个主要的行为差异:只提供递归搜索(类似于gfold -r
),并且所有结果都组合到一个表格中(受kubectl get pods -A
的启发)。
安装
此存储库包含两个应用程序:gfold
,主要的完整功能版本,和gfld
,最小化版本。安装后者的推荐方法只有一个,而原始版本有多个安装方法。因此,本节从最小化版本开始。
对于所有安装步骤:强烈建议在兼容系统上运行strip
来减小可执行文件的大小。以下脚本已在macOS和Linux系统上测试过
for i in $(command -v gfold) $(command -v gfld); do
[ "$i" != "" ] && strip $i && du -h $i
done
上述脚本可以与已安装的应用程序、同时安装或未安装的应用程序一起使用。
如果您不知道应用程序安装在哪里,可以在兼容平台上使用which
命令,或检查您的cargo install
设置。
安装gfld
目前,唯一推荐的安装 gfld
的方法是使用 cargo 安装 crate。幸运的是,最小化的应用程序几乎可以在所有主要平台上运行。
cargo install gfld
使用 cargo-update 来保持 crate 更新很容易。
cargo install cargo-update cargo install-update -a
安装 gfold
您可以使用 macOS Homebrew 或 Linuxbrew 来安装 tap。
brew install nickgerace/gfold/gfold
您可以使用支持从 AUR 安装软件包的 Linux 发行版 来安装:[gfold](https://aur.archlinux.org/packages/gfold/)(从源码编译)和/或 [gfold-git](https://aur.archlinux.org/packages/gfold-git/)(VCS/开发包)。许多人选择使用 AUR 辅助工具,如 yay 或 paru,来安装他们的 AUR 软件包。
yay -S gfold
paru -S gfold
您几乎可以使用 cargo 在任何平台上安装 crate。有关如何使用 cargo-update
保持 crate 更新的说明,请参阅上面的 gfld
部分。
cargo install gfold
用法
对于 gfold
:传递 -h
或 --help
标志来查看此应用程序的所有选项。
gfold
gfold ..
gfold $HOME
gfold /this/is/an/absolute/path
gfold ../../this/is/a/relative/path
gfold ~/path/to/multiple/repositories/ -r
gfold -r $HOME/path/to/multiple/repositories
对于 gfld
:您也可以传递 -h
或 --help
。然而,配置方法只有一种:一个可选的单个命令行参数用于目标路径。这是最小化应用程序设计的结果。
gfld
gfld ..
gfld $HOME
gfld /this/is/an/absolute/path
gfld ../../this/is/a/relative/path
兼容性
这两个应用程序都旨在在任何一级的 Rust 目标上运行。如果您所在的平台不受支持,请 提交问题。
其他文档
- CHANGELOG.md: 采用 Keep a Changelog 格式
- DEVELOPING.md: 开发者技巧、窍门和注释
- RELEASE.md: 发布流程注释
行为准则
此存储库遵循并执行 Rust 编程语言的 行为准则。
更多信息
- 作者:[Nick Gerace](https://nickgerace.dev)
- 许可证:[Apache 2.0](https://github.com/nickgerace/gfold/blob/HEAD/./LICENSE)
特别感谢...
- [jrcichra](https://github.com/jrcichra) 为原始早期 CI 管道添加了跨操作系统支持
- [orhun](https://github.com/orhun) 维护了所有 [gfold](https://github.com/orhun/PKGBUILDs) 的 AUR 软件包
- [yaahc](https://github.com/yaahc) 在早期重构期间提供指导
依赖项
~8–16MB
~277K SLoC