2 个不稳定版本
0.2.0 | 2022 年 8 月 4 日 |
---|---|
0.1.0 | 2022 年 7 月 18 日 |
#614 在 Cargo 插件
39KB
904 行
Cargo 版本控制系统扩展
Cargo-vcs 是一个 Cargo 扩展,它增加了版本控制助手以帮助管理工作区成员。
示例用例
查看工作区成员的当前分支和 MSRV 状态
cargo vcs status
- 简要概述cargo vcs status -v
- 详细视图
$ cargo vcs status
Workspace is set to profile: new [.../rust/embedded] MSRV: 1.59.0
** Projects with uncommitted changes **
redv: refs/heads/e-h-1.0.0-alpha.7 [.../rust/embedded/apps/redv]
└── [CHANGES]
└── src/main.rs
e310x-hal: refs/heads/e-h-1.0.0-alpha.7 [.../rust/embedded/e310/e310x-hal]
└── [CHANGES]
├── src/spi/bus.rs
└── src/spi/config.rs
切换到工作区成员的分支或提交
cargo vcs checkout master
- 在所有工作区成员上切换到 mastercargo vcs checkout master -m member1, member2
- 只在特定成员上切换
$ cargo vcs checkout master
redv set to refs/heads/master
embedded-hal set to refs/heads/master
e310x set to refs/heads/master
e310x-hal set to refs/heads/master
hifive1 set to refs/heads/master
riscv set to refs/heads/master
riscv-rt set to refs/heads/master
mipidsi set to refs/heads/master
使用配置文件
cargo vcs profile save profile1
- 在名称profile1
下保存每个工作区成员的当前仓库状态cargo vcs profile set profile1
- 将所有工作区成员仓库切换到profile1
中保存的状态
$ cargo vcs profile set new
redv set to refs/heads/e-h-1.0.0-alpha.7
embedded-hal set to refs/tags/v1.0.0-alpha.7
e310x set to refs/heads/e-h-1.0.0-alpha.7
e310x-hal set to refs/heads/e-h-1.0.0-alpha.7
hifive1 set to refs/heads/v0.11.0-alpha.1
riscv set to refs/heads/e-h-1.0.0-alpha.7
riscv-rt set to refs/heads/e-h-1.0.0-alpha.7
mipidsi set to refs/heads/v0.3.0-alpha.1
导航到特定工作区成员
$cd$(cargovcs dir member1)
配置文件
配置文件保存在工作区根目录下,名为 Cargo_vcs.toml
。可以手动编辑,但使用 cargo vcs profile save <profile_name>
是首选方法,因为它将短名称解析为完整的仓库引用路径。
配置文件格式
格式为 Toml 的文件
[vcs.<profile_name>]
<project_name> = "<git_reference>"
...
VCS 支持
Git
Git 目前是唯一支持的 VCS。
未提交的更改
使用未提交的更改进行配置文件和分支切换会导致新的 stash 推送。当返回到源引用或配置文件时,将弹出暂存更改。
每次仓库更改都保存为一个特定的名称,并以此名称进行查找,不使用FIFO,并且不在cargo-vcs外创建的仓库更改不被考虑。
其他
目前仅支持git。可以通过实现Repository
特质来添加其他版本控制系统,然而在关于脏更改策略方面还需要更多的工作。
最小支持的Rust版本(MSRV)
本库确保可以在稳定版Rust 1.59.0及更高版本上编译。它可能可以在较旧版本上编译,但任何新的补丁发布都可能改变这一点。
早期发布
该项目目前仍处于早期发布阶段。它应该可以安全使用,但始终存在可能产生导致工作区仓库最终处于奇怪状态的错误。
依赖
~12–24MB
~374K SLoC