我正在使用MinVer,无法找到如何获得提交高度来创建自定义版本后缀。理想情况下,我希望有1.0.0-预览.{提交}而不是1.0.0.-预览.0.{提交}。我不知道预释放标签和提交高度之间的零值是多少。(是的,我已经将<MinVerDefaultPreReleasePhase>
设置为预览:)
其次,使用GitInfo,我注意到提交的数量不一致。下面是一些在github上做实验的我的输出
$ dotnet Application.dll
========== Git ==========
Commit a54e9e9
Commit SHA a54e9e96868470ebf13d4a35ce9858c09a534363
Branch remotes/origin/master
Tag
Commits 39
========== Assembly ==========
Version 1.0.0
Assembly Not found: AssemblyVersionAttribute
Informational 1.0.0-preview.0.34+a54e9e96868470ebf13d4a35ce9858c09a534363
File 1.0.0.24 // AzDo BuildId=24
诊断MinVer给我提供了一些关于根提交的提示,但我对git知之甚少,git是什么决定根提交的。
MinVer: Starting at commit a54e9e9 (height 0)...
MinVer: History diverges from 3c0633f (height 20) to:
MinVer: - 56af0a5 (height 21)
MinVer: - 747ef5a (height 21)
MinVer: Following path from 3c0633f (height 20) through first parent 56af0a5 (height 21)...
MinVer: Found root commit { Commit: faa505b, Tag: null, Version: 0.0.0-preview.0, Height: 34 }.
MinVer: Backtracking to 3c0633f (height 20) and following path through last parent 747ef5a (height 21)...
MinVer: History converges from 0f35453 (height 24) back to previously seen commit 8dc52dc (height 25). Abandoning path.
MinVer: 39 commits checked.
MinVer: No commit found with a valid SemVer 2.0 version prefixed with ''. Using default version 0.0.0-preview.0.
MinVer: Using { Commit: faa505b, Tag: null, Version: 0.0.0-preview.0, Height: 34 }.
因此,概括地说:
第三个问题让我进入NuGet版本化和关于FileVersionAssembly的章节,特别是版本号的修订部分。但我把这个留给另一个问题。
Note I试图添加标记minver
,但由于声誉低,没有做到:)
谢谢
乔基姆
发布于 2020-02-24 18:52:02
我假定“版本后缀”指的是预释放标识符。您不能全部自定义它们,只有默认的预发布阶段,您已经在使用MinVerDefaultPreReleasePhase
了。
它是一个哨兵值,表示下一个版本发布前的临时版本。请记住,在MinVer中的一个基本假设是在发布之前进行标记,因此永远不会发布其中的一个版本。例如,当前提交可能正在构建0.0.0-preview.0.34
。当您想发布您的第一个预览时,您将使用1.0.0-preview.1
标记提交,MinVer将该版本嵌入到您的程序集和包中。
这在“它是如何工作的”中有解释
您将注意到,当未对当前提交进行标记时,MinVer会向预发布标识符添加另一个数字。这是自最近的标记以来提交的次数,或者如果没有找到标记,则为根提交。这就是所谓的“高度”。例如,如果在42提交高度找到的最新标记是
1.0.0-beta.1
,则计算版本为1.0.0-beta.1.42
。
来自常见问题
如果在找到最新的标记(或根提交)之前,历史发散,然后再次收敛,怎么办? MinVer将在历史发散的第一条路径上使用高度。路径遵循的顺序与提交的父级存储在git中的顺序相同。第一个父级是执行合并时在当前分支上提交的分支。其余的父级按照其分支在merge命令中指定的顺序存储。
你还可以看到,在令人痛苦的细节,MinVer如何回顾历史
我可以获得日志输出来查看MinVer如何计算版本吗? 是!MinVerVerbosity可以设置为安静、最小(默认)、正常、详细或诊断。 在诊断级别,您将看到MinVer是如何遍历提交历史的,非常详细。
https://stackoverflow.com/questions/60321978
复制相似问题