1 个不稳定版本
0.7.5 | 2022 年 7 月 2 日 |
---|
#1684 in 开发工具
395KB
9K SLoC
GRM — Git 仓库管理器
GRM 帮助您以声明式方式管理 Git 仓库。在 TOML 文件中配置您的仓库,GRM 完成其余操作。
查看 官方文档 以获取安装和快速入门信息。
为什么?
我机器上有许多仓库。我的个人项目、分支、克隆的其他人的仓库、从未启动的项目……总之,我失去了全局观。
为了在这些机器之间同步这些仓库,我一直使用 Nextcloud。问题是,Nextcloud 对大量经常更改的小文件并不太高兴,例如 .git
中的文件。Git 也假设这些文件尽可能原子性地更新。Nextcloud 无法保证这一点,所以在同步期间执行 git status
时,总会出现一些问题。解决这些冲突真的让人头疼……
最后,我认为 Git 仓库根本不属于像 Nextcloud 这样的工具。Git 已经管理了内容和版本,所以让另一个工具做同样的事情是没有意义的。但当然,在新机器上从头开始设置所有这些仓库真的很麻烦。如果有一种方法可以一次性克隆所有这些仓库怎么办呢?
此外,我以前迁移过个人 Git 服务器的域名。我手动更新了一些远程仓库,但仍然会在一段时间未触及的项目中遇到旧的、过时的远程仓库。如果有一个地方可以一次性更新所有这些远程仓库会怎么样?
这就是 GRM 产生的原因。我非常喜欢基础设施即代码,GRM 就像为您的本地 Git 仓库提供的 Terraform。编写配置,运行工具,您的仓库就准备好了。唯一由 Git 跟踪的是仓库列表本身。
未来 & 想法
- 对所有仓库的操作(例如,拉取)
- 显示受管理仓库的状态(脏、与远程比较等)
可选功能
- 支持多种文件格式(YAML、JSON)。
- 添加 systemd 计时器单元以运行定期同步
Crates
- 配置文件使用
toml
- 因为我们在使用 Rust,所以使用了
serde
- 使用
git2
,这是一个围绕libgit2
的安全包装,用于所有 git 操作 - 使用
clap
、console
和shellexpand
来实现良好的用户体验
链接
依赖项
~45MB
~1M SLoC