#版本控制 #控制系统 #git #cli #开发者工具

app vault_vcs

在 Rust 中构建的简化版版本控制系统,其功能与 git 类似

2 个稳定版本

1.2.2 2023 年 12 月 23 日

开发工具 中排名第 255

MIT 许可证

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

参考资料

从源代码

  1. 通过运行以下命令克隆此仓库
git clone https://github.com/shubhexists/vault
  1. cd 进入目录并运行
cargo build --release

这将创建项目的二进制文件。

  1. 导出可执行文件的路径(它在 /target/release/ 目录中)。例如,
   export PATH="$PATH:/home/jerry/Desktop/vault/target/release"
  1. 现在您可以开始“VAULTIFY”您本地的文件了 :)

命令

  1. 在当前工作目录中初始化一个新的 vault 实例。
vault init
  1. 创建新的提交。
vault commit -m "Your Commit Message"

参数 -m--message 是可选的。如果没有提供消息,则默认使用空消息。

  1. 创建新的分支。
vault create branch_name
  1. 撤销提交(回到目录的早期状态)
vault revert -l "No. of commits" "dir_name"
  • 参数 -l--level 定义要回退的提交数。例如,-l 2 会回退 2 个提交。如果没有提供,默认值为 1。

  • dir_name 需要一个目录名,其中将添加文件。如果没有提供,它将替换当前目录中的文件。(wip)

例如,对于 vault revert -l 2 hello,将会创建一个名为 hello 的新目录,其中包含 2 次提交之前的文件。

  1. 删除分支
vault delete branch_to_delete
  1. 切换到另一个分支(git checkout)
vault switch branch_to_switch
  1. 当前分支的日志
vault log

注意 - vault log 的输出仅包括当前活动分支的日志。

vault log 的输出 8) (主要用于调试目的)读取 Zlib 压缩的二进制文件内容

vault cat hash_string_to_read

注意 - 应在根目录下运行 vault cat 命令。即存在 .vault 的目录。 2023-12-23 10-05-08 的屏幕截图

限制/工作进展

  1. .vaultignore 目前不可用
  2. 添加 - 测试用例和随后的工作流程
  3. 添加更多有用的命令

可能还有很多!其中一些可以在 问题 中找到。

谢谢

如果你读到这儿,感谢你对项目的兴趣 :)

依赖项

~6.5MB
~122K SLoC