6个版本
| 0.3.5 | 2023年6月21日 |
|---|---|
| 0.3.4 | 2023年6月21日 |
| 0.1.0 | 2020年12月30日 |
#545 in 开发工具
每月下载量:48
99KB
548 行

一个简单、有偏见的、用Rust编写的工具,用于声明式地管理您机器上的Git仓库。
"简单" - 支持的功能有限。例如,不支持对仓库运行命令。"有偏见" - 与Go和旧的 $GOPATH 相似,仓库是如此存储的。
安装
通过 cargo
cargo install gitrs
通过 nixpkgs
待办事项
用法
环境变量
GITRS_ROOT- (默认值:$HOME/src). 由gitrs管理的路径。SSH_PRIVKEY_PATH- (默认值:$HOME/.ssh/id_rsa). 您的SSH私钥的路径。SSH_PRIVKEY_PASS- (默认值:""). SSH私钥密码。
全局参数
--root <path>- 指定$GITRS_ROOT. 默认为$HOME/src.
子命令
add <url>- 将仓库添加到配置文件。remove <url>- 从配置文件中删除仓库。sync- 读取配置文件,并将文件系统中的仓库添加或删除以匹配配置的状态。
日志记录
gitrs使用标准的Leveled日志,因此 RUST_LOG=<debug,info,warn,error>; gitrs ... 报告请求的日志。
$GITRS_ROOT/.gitrs.yaml 配置文件
metadata:
version: v1beta
root: /home/user/src
last_sync: <timestamp>
repos:
- name: github.com/mccurdyc/gitrs
pin: <true|default:false>
sha: <sha>
设计目标
- 做好一件事:从文件系统中克隆、更新或删除仓库。
- 不支持在克隆的仓库上运行命令。
- 仅支持SSH克隆,类似于Go的实现。
- 具有明确的文件结构。例如,
$GOPATH。但您可以指定一个GITRS_ROOT。 - 您可以为不同的用途拥有多个“根”。例如,
$HOME/{work,personal具有独立的gitrs配置。 - 有一个单独的配置文件来声明要管理的仓库。
- 配置文件是您机器上所有克隆仓库的真相来源。
- 如果您运行
add,它将仓库添加到配置文件。 - 如果您运行
remove,它将从配置文件中删除仓库。 - 然后,
sync克隆仓库并/或更新文件系统以反映配置文件的状态。
- 如果您运行
- 配置文件(考虑YAML)
- 支持注释
- 如果您不想使用
gitrs,则可以解析以用于另一个工具。 - 您团队(在工作)需要的仓库的真相来源
待办事项
- (待办)
add --pin [<SHA>]锁定/跳过仓库以检查更新。 - (待办)
sync --clean- 仅删除仓库,不更新或克隆。 - (考虑)
sync --archive- 归档仓库,到$GITRS_ROOT/.archived。 - (待办)
watch- 监控配置文件的更新并同步文件系统。 - (待办)
list- 列出配置文件中的仓库。 - (待办)
status- 检查克隆的仓库是否需要删除,以及远程更新是否需要获取。 - (待办) Nix包
采用
- 我仍在考虑是否要为
add添加支持多个仓库。
mv src/ src.bak/
for d in ~/src.bak/github.com/org/*; do
gitrs add $(echo ${d##*src.bak/})
done
gitrs sync
灵感
参见类似项目。
许可证
参见LICENSE.md。
依赖关系
~16–27MB
~490K SLoC