2 个不稳定版本

0.2.0 2022 年 8 月 4 日
0.1.0 2022 年 7 月 18 日

#614Cargo 插件

AGPL-3.0-only

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 - 在所有工作区成员上切换到 master
  • cargo 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