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