问题标签 [gitversion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1403 浏览

git - 如何在git中管理版本文件

我需要在我的 git 存储库中有版本文件。

当我们决定发布时,我有手动触发的发布过程(管道),这个过程应该做:

  1. 克隆回购
  2. 运行测试
  3. 计算新版本
  4. 用新版本更新版本文件
  5. 提交并推送新版本文件
  6. 使用新版本在 git 中创建标签/分支

现在,当我从这个标签进行克隆时,版本文件应该包含正确的版本。

如果在运行测试时 (#2) 其他人提交了对 repo 的更改,会发生什么情况,在 #6 中生成的标签是否还包含在发布过程中未测试的更改?

这个流程的逻辑是否正确,或者我有更好的方法来管理版本文件?

0 投票
2 回答
2964 浏览

git - GitVersion 配置不递增

我正在尝试设置GitVersion来处理我们项目的语义版本控制(GitFlow),但它并没有像我期望的那样自动递增。我也在努力阅读项目的文档,这不是最容易理解的。

基本上,我们希望建立一个具有 Major.Minor.Patch 约定的版本控制系统,我们手动增加 Major,当发布分支合并到 master 时自动增加 Minor,当功能分支合并到开发时自动增加 P​​atch。

这是我现在的GitVersion.yml

为了测试它,我编写了一个小的 ruby​​ 脚本来加快繁琐的过程。我包含它只是为了确保我以预期的方式使用 GitVersion 和 GitFlow。

的输出gitversion

每次我将功能分支合并到开发中时,我都希望补丁号增加,但这并没有发生。

0 投票
0 回答
248 浏览

continuous-integration - GitVersion Nuget 版本包括 sha

简而言之:我正在尝试格式化我的 NugetVersion 而不是使用默认值,方法是在最后添加 -{ShortSha} (带有前缀的版本)

所以基本上我要做的是使用GitVersionTask Nuget 包来版本我的 Nuget 包,但在前缀可用时最后还包括 ShortSha ,主要原因是我可以准确地知道该包是从哪个提交创建的。

我设法通过简单地添加来使默认版本控制工作:

到我的“.csproj”文件。

现在打包我的包裹时,他们确实得到了一个很酷的版本,例如:

0.1.0-testgitversion0026

这太棒了,但我还想在其中添加提交短 sha,这样它就变成了:

0.1.0-testgitversion0026-6448d7b

查看文档,通过编辑 GitVersion.yml 似乎我可以更改 InformationalVersion、FileVersion、AssemblyVersion 使用:assembly-versioning-format、assembly-versioning-format、assembly-informational-format

不幸的是,我找不到通过 GitVersion.yml 更改 NugetVersion 格式的方法

有没有办法在 GitVersionTask 中格式化 NugetVersion?

还是我必须使用代码或其他方法而不是GitVersionTask

注意:我只想在有前缀时添加这个短 sha

感谢您的帮助,非常感谢。

0 投票
1 回答
106 浏览

git - Azure Pipelines 签出的本地克隆和 repo 之间的 GitVersion 差异

我在存储库中有一个分支,当在新克隆上本地运行时 GitVersion 返回一个版本(1.5.0-netcore1),但是在同一分支上的 Azure Pipelines 上运行 GitVersion 时,它返回另一个版本(1.4.1-netcore1) . (从 的整个输出中只有次要版本和补丁版本不同gitversion)。

我确实设置了一个本地代理,因此我将存储库放在我计算机上的本地文件夹中,由 Azure Pipelines 签出,并且当我gitversion在该文件夹中运行时差异是相同的,而不是我使用git clone.

在这两个文件夹上运行的结果git taggit branch一样的,列出了所有的分支和标签。

同一存储库的这两个克隆之间可能有什么不同,我该怎么做才能使 GitVersion 表现相同?

作为参考,有问题的存储库是https://github.com/alphaleonis/AlphaVSS/tree/feature/netcore

0 投票
1 回答
1347 浏览

git - GitVersion 构建元数据未正确递增

我正在为 AzureDevOps 使用 Gitversion 任务 5.1.2。

我的分支策略是 GitFlow。

从开发分支输出:

我期待的是3.0.0-beta.6,从上面的行我可以看到它正确计算了元数据,到目前为止还不错,但最后更新号是3.0.0-beta.1,如下图.

我的 GitVersion.yml

我不明白为什么?

有人可以帮我吗?

0 投票
1 回答
459 浏览

azure - 在功能 gitflow 分支上使用 VS2017 中的 Gitversiontask,修订不增加

我对所有AZURE devops 都很陌生

我只是在我的 VS 解决方案上进行了最小安装,在我的解决方案中 nuget Gitversiontask,推送到 Azure Git 管道,它与开发分支一起工作。

我创建了 ( GitFLOW ) 一个名为 dostuff的功能。对类进行了一些更改,然后提交并推送...版本功能/我的应用程序 6.1.0-dostuff0001 出来了...Nuget 打包并推送...一切都很好。

然后做了另一个提交,管道开始但在Nuget 推送到工件...错误 409(冲突 - 提要已经包含'my-app 6.1.0-dostuff0001)。

管道

问题:当我在 Azure devops 中对管道进行排队并且构建任务增加功能分支的版本时,如何使 my-app 6.1.0-dostuff0001 增加或更改?

请记住,我对所有这些构建、yml、配置等概念都是新手。

0 投票
4 回答
19783 浏览

azure-devops - 在完成时从 Azure Devops Build Pipeline 设置 Git 标记

我正在尝试使用 GitVersion 在成功构建结束时在 GIT 提交上确定的当前版本号设置标签。感觉我不能成为第一个这样做的人,但我正在努力寻找可行的方法。

Azure Devops Pipeline 在获取源以在成功时“标记源”中具有一项功能。我已经设置了这个并设置为一个由我拥有的代理任务之一设置的变量(GitVersion)

标记来源

我可以在调试日志中看到,这个变量是由我添加到管道的 GitVersion 组件设置的。

但是,如果我保持原样,我会得到一个创建为“v$(GitVersion.MajorMinorPatch)”的标签,这意味着在创建标签时该变量不再存在。

标签格式帮助工具提示说

“标签格式可以是范围为“全部”的用户定义或预定义变量的组合。例如:'$(Build.DefinitionName) $(Build.DefinitionVersion) $(Build.BuildId) $(Build .BuildNumber) $(My.Variable)'"

所以我想问题是在管道期间创建的这个变量没有All的范围。

然后我尝试将管道变量添加到“GitVersion.MajorMinorPatch”的管道中,希望这是在正确的范围内,并希望当“task.setvariable”命令运行时,这将设置这个更高的变量值范围变量。

在此处输入图像描述

但是在这种情况下,我刚刚创建了一个标签“v”。

所以我有点卡住了。不知何故,我需要能够在 ALL 范围内动态创建或设置一个变量,其中包含我想在此处标记的值。

我将非常感谢您对此的任何想法。

0 投票
2 回答
9025 浏览

azure-devops - 将 Azure DevOps 内部版本号设置为 Gitversion MajorMinorPatch 号

我正在尝试将我的 Azure DevOps Pipeline 的内部版本号设置为来自 gitversion 的 MajorMinorPatch 版本。我的 YAML 中有以下用于管道的内容:

问题是当我运行我的管道时,我得到一个管道名称,如:0.1.0-alpha.70

我不知道为什么我得到-alpha.70。我想我知道它们的意思,但我不希望在我的 Version 字符串中看到它们。当我在本地运行 gitversion 时,我的 MajorMinorPatch 字符串是 0.1.0,这就是我想要看到的。谁能帮我获得这些信息?

编辑:对于任何好奇的人,我在这里包括我的 GitVersion.yml,它几乎是标准配置:

希望这会有所帮助。

0 投票
1 回答
1386 浏览

git - GitVersion 的 +semver 命令是如何工作的?

我正在尝试使用GitVersion+semver:patch命令来提高我的补丁版本号,但它没有按我预期的方式工作。

我的分支上有一个标签“2.2.0”。我在我的开发分支上做了以下提交:

我正在关注GitFlow。在最近两次提交之后,我希望我的版本报告为 2.3.2,但 GitVersion 仍将其报告为 2.3.0。

“主要次要补丁”:“2.3.0”

它是如何+semver工作的,有什么方法可以按照我想要的方式(即没有手动标记)仅使用提交消息来提高活动版本号?

0 投票
1 回答
215 浏览

gitversion - GitVersion 工具中的 IsDynamicGitRepository 标志是什么

当我在 git 工作目录中运行gitversion init时,我会看到以下内容。

IsDynamicGitRepository: False

我是 gitversion 工具的新手,所以请帮助我理解这里的动态存储库是什么意思。

什么是 GitVersion 工具中的动态 Git 存储库