2 个稳定版本
1.2.2 | 2023 年 12 月 23 日 |
---|
在 开发工具 中排名第 255
52KB
1K SLoC
Vault
如果成功,Vault 将是一个类似于 git 的命令行工具,具有分支等多个功能。
如果你在这里,请点个赞✨。这对我来说意义重大 : )
__ __ _ _
\ \ / /_ _ _ _| | |_
\ \ / / _` | | | | | __|
\ V / (_| | |_| | | |_
\_/ \__,_|\__,_|_|\__| , simplified version control for local files
关于
Vault 是一个用 Rust 编写的版本控制系统,作为一个学习项目。它遵循类似于 Git 的工作方式,即
- 文件存储为 Blob,目录存储为 Tree。
- 使用 SHA256 对这些对象进行编码。
- 使用 ZLib 压缩以实现最大效率。
更多详情,请参阅 Workflow.md (wip)
Vault 不适合实际使用,但可能对了解 git 内部工作原理感兴趣。
安装
您可以直接通过 Cargo 安装
cargo install vault_vcs
参考资料
从源代码
- 通过运行以下命令克隆此仓库
git clone https://github.com/shubhexists/vault
cd
进入目录并运行
cargo build --release
这将创建项目的二进制文件。
- 导出可执行文件的路径(它在
/target/release/
目录中)。例如,
export PATH="$PATH:/home/jerry/Desktop/vault/target/release"
- 现在您可以开始“VAULTIFY”您本地的文件了 :)
命令
- 在当前工作目录中初始化一个新的 vault 实例。
vault init
- 创建新的提交。
vault commit -m "Your Commit Message"
参数 -m
或 --message
是可选的。如果没有提供消息,则默认使用空消息。
- 创建新的分支。
vault create branch_name
- 撤销提交(回到目录的早期状态)
vault revert -l "No. of commits" "dir_name"
-
参数
-l
或--level
定义要回退的提交数。例如,-l 2 会回退 2 个提交。如果没有提供,默认值为 1。 -
dir_name
需要一个目录名,其中将添加文件。如果没有提供,它将替换当前目录中的文件。(wip)
例如,对于 vault revert -l 2 hello
,将会创建一个名为 hello
的新目录,其中包含 2 次提交之前的文件。
- 删除分支
vault delete branch_to_delete
- 切换到另一个分支(git checkout)
vault switch branch_to_switch
- 当前分支的日志
vault log
注意 - vault log 的输出仅包括当前活动分支的日志。
8) (主要用于调试目的)读取 Zlib 压缩的二进制文件内容
vault cat hash_string_to_read
注意 - 应在根目录下运行 vault cat
命令。即存在 .vault
的目录。
限制/工作进展
.vaultignore
目前不可用- 添加 - 测试用例和随后的工作流程
- 添加更多有用的命令
可能还有很多!其中一些可以在 问题 中找到。
谢谢
如果你读到这儿,感谢你对项目的兴趣 :)
依赖项
~6.5MB
~122K SLoC