2 个不稳定版本
0.2.0 | 2021 年 11 月 5 日 |
---|---|
0.1.6 | 2021 年 2 月 20 日 |
#2309 in 开发工具
27KB
462 行
autover
为您的 git 项目提供自动语义版本控制。
安装
- 下载最新版本之一,或使用
cargo build
编译。 - 在您想要开始版本控制的仓库中运行
autover init
。 - (可选) 使用
autover set <version>
设置您的应用程序版本 - 推送到远程仓库!
它是如何工作的?
autover
是一个应用程序,它使用项目的 git 历史记录来 计算 项目的版本,具体是通过在项目的 git notes
中放置一些数据。
它从 0.0.0
开始并递增 -- 初始提交是 0.0.0
。如果您想要不同的起始点,请在初始提交上使用 autover set
。
因为它使用 git 笔记,所以您确实需要推送笔记引用。 autover init
设置您的 git 配置,以便它将推送
用法
限制
您只能在每次提交中更改版本一次。例如,要更新主版本和发布标签,您必须使用两个单独的提交。
这可能会在未来更改,但为了简化,已从本版本中省略。
获取当前版本
不带参数调用 autover 将返回当前版本
$ autover
1.2.3-alpha
手动设置版本
如果您是首次使用 autover
,并且它正在接管团队人类版本控制的责任,您可能已经有一个版本号。
您可以使用 autover set
告诉 autover 从该版本开始计数。
$ autover set 1.2.3-alpha
帮助
$ autover help
autover
Laurence Pakenham-Smith <[email protected]>
Automatic calculatable versions
USAGE:
autover [OPTIONS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-c, --count-patch <COUNT_METHOD> Choose the counting method from merge (default), commit, or manual.
SUBCOMMANDS:
clear Clear the current commit of any manual version changes
fetch Fetch version changes from the remote repository
help Prints this message or the help of the given subcommand(s)
init Set up repository to auto-push version changes
major Increments the major version
minor Increments the minor version
patch Increments the patch version (manual COUNT_METHOD only)
push Push version changes to the remote repository
set Override the current version
tag Set or clear the prerelease tag
更新版本
增加补丁版本
有几种不同的方法可以做到这一点,两种是自动的,一种是手动的。
在合并提交上增加补丁(默认)
默认情况下,autover
在看到合并提交时会增加补丁号。
注意事项:简单的合并提交计数
这意味着来自任何分支的合并提交——一旦合并提交进入master
分支,autover就无法判断它是合并到master还是发生在两个其他分支之间的合并。
非合并提交的增量补丁
调用autover -c commit
将告诉autover
将常规提交(具有单个父提交的提交)视为补丁增量。
手动增加补丁
$ autover patch
1.2.3-alpha -> 1.2.4-alpha
增加次要版本
$ autover minor
1.2.4-alpha -> 1.3.0-alpha
增加主要版本
$ autover major
1.3.0-alpha -> 2.0.0-alpha
更改标签
$ autover tag rc1
2.0.0-alpha -> 2.0.0-rc1
清除标签
$ autover tag
2.0.0-rc1 -> 2.0.0
撤销对当前提交的更改
$ autover clear
其他命令
确保注释能够自动获取和推送
$ autover init
此命令会在.git/config
中添加几行,确保autover
添加的任何git notes
都可以与您的正常工作流程一起推送和获取。如果您在远程版本更新失败或无法拉取它们时遇到任何问题,这可能是原因所在。
手动推送/获取版本/注释
autover
提供了fetch
和push
命令,如果您需要手动获取或推送注释引用,例如在ci运行期间。
注意事项
目前autover只支持每个注释(因此是每个提交)的一个命令
它还依赖于完整的历史记录,目前,因此如果您在ci中使用autover
并且以深度0获取,则它可能不会按预期工作。
理由
为什么使用git notes
?
此应用程序的原始mvp使用提交中的标记,但我对这种方法有一些不满
- 它会在提交中留下很多垃圾信息
- 它鼓励人们创建空提交,这些提交除了增加版本外不做任何事情。
依赖关系
~15MB
~336K SLoC