首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义版本后缀MinVer

自定义版本后缀MinVer
EN

Stack Overflow用户
提问于 2020-02-20 14:16:27
回答 1查看 774关注 0票数 2

我正在使用MinVer,无法找到如何获得提交高度来创建自定义版本后缀。理想情况下,我希望有1.0.0-预览.{提交}而不是1.0.0.-预览.0.{提交}。我不知道预释放标签和提交高度之间的零值是多少。(是的,我已经将<MinVerDefaultPreReleasePhase>设置为预览:)

其次,使用GitInfo,我注意到提交的数量不一致。下面是一些在github上做实验的我的输出

代码语言:javascript
运行
复制
$ 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是什么决定根提交的。

代码语言:javascript
运行
复制
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 }.

因此,概括地说:

  1. 如何为MinVer自定义版本后缀?
  2. 零{MinVerDefaultPreReleasePhase}..{commits}代表什么?
  3. 如何计算/确定提交高度?

第三个问题让我进入NuGet版本化和关于FileVersionAssembly的章节,特别是版本号的修订部分。但我把这个留给另一个问题。

Note I试图添加标记minver,但由于声誉低,没有做到:)

谢谢

乔基姆

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-24 18:52:02

  1. 如何为MinVer自定义版本后缀?

我假定“版本后缀”指的是预释放标识符。您不能全部自定义它们,只有默认的预发布阶段,您已经在使用MinVerDefaultPreReleasePhase了。

  1. 0{MinVerDefaultPreReleasePhase}.0.{提交}代表什么?

它是一个哨兵值,表示下一个版本发布前的临时版本。请记住,在MinVer中的一个基本假设是在发布之前进行标记,因此永远不会发布其中的一个版本。例如,当前提交可能正在构建0.0.0-preview.0.34。当您想发布您的第一个预览时,您将使用1.0.0-preview.1标记提交,MinVer将该版本嵌入到您的程序集和包中。

  1. 如何计算/确定提交高度?

这在“它是如何工作的”中有解释

您将注意到,当未对当前提交进行标记时,MinVer会向预发布标识符添加另一个数字。这是自最近的标记以来提交的次数,或者如果没有找到标记,则为根提交。这就是所谓的“高度”。例如,如果在42提交高度找到的最新标记是1.0.0-beta.1,则计算版本为1.0.0-beta.1.42

来自常见问题

如果在找到最新的标记(或根提交)之前,历史发散,然后再次收敛,怎么办? MinVer将在历史发散的第一条路径上使用高度。路径遵循的顺序与提交的父级存储在git中的顺序相同。第一个父级是执行合并时在当前分支上提交的分支。其余的父级按照其分支在merge命令中指定的顺序存储。

你还可以看到,在令人痛苦的细节,MinVer如何回顾历史

我可以获得日志输出来查看MinVer如何计算版本吗? 是!MinVerVerbosity可以设置为安静、最小(默认)、正常、详细或诊断。 在诊断级别,您将看到MinVer是如何遍历提交历史的,非常详细。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60321978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档