什么可以使 gitversion 在同一分支上计算不同的版本(本地与构建代理回购)
What could make gitversion compute a different version on the same branch (local vs build agent repos)
我有一个提交并同步到 TFS 2015 的分支。
当 运行 在构建代理上构建时,执行的 gitversion 命令计算出不同的版本。
本地我根据标签 3.10.0.202
得到 3.11.0
在构建代理上我得到 0.1.0
我觉得这个变化可能与克隆在构建代理上的完成方式有关。任何人都可以建议这是否可能以及可能有什么区别?
N.B.
- 构建代理目前只是我机器上的一个 TFS 2015 构建代理 运行。
- 运行 不带 no fetch 的命令给出相同的结果
- 这是标签
- 错误的版本号在构建服务器上(通过 TFS 构建),但我也使用命令行重现了它。我只 post 编辑了后者,因为它给出了结果。当我下次能够登录服务器时,我可以 post TFS 构建输出的示例。第二个示例 (D:) 中的回购是使用 TFS 构建克隆的,而第一个 (C:) 是使用 VS 2015 克隆的。
我可以通过为 b运行ch 和 运行 gitversion 命令的历史记录创建标签来重现您的场景:
然后我提交并将此 b运行ch 推送到 TFS 2015,在构建代理机器上,我 运行 gitversion 命令:
为了找出它们不同的原因,我登录到TFS构建代理机器并拉取b运行ch,我发现b运行ch上没有标签。那是因为在 Visual Studio 中使用同步或推送不会推送标签。
虽然 GitVersion Docs 提到,如果标记了提交,那么 GitVersion 将始终在任何计算版本上使用该版本。如果您重建标签,那么将生成相同的版本。
总之,VS 不会推送标签导致这种差异。要推送标签,您必须使用命令 git push --tags
.
我有一个提交并同步到 TFS 2015 的分支。
当 运行 在构建代理上构建时,执行的 gitversion 命令计算出不同的版本。
本地我根据标签 3.10.0.202
得到 3.11.0在构建代理上我得到 0.1.0
我觉得这个变化可能与克隆在构建代理上的完成方式有关。任何人都可以建议这是否可能以及可能有什么区别?
N.B.
- 构建代理目前只是我机器上的一个 TFS 2015 构建代理 运行。
- 运行 不带 no fetch 的命令给出相同的结果
- 这是标签
- 错误的版本号在构建服务器上(通过 TFS 构建),但我也使用命令行重现了它。我只 post 编辑了后者,因为它给出了结果。当我下次能够登录服务器时,我可以 post TFS 构建输出的示例。第二个示例 (D:) 中的回购是使用 TFS 构建克隆的,而第一个 (C:) 是使用 VS 2015 克隆的。
我可以通过为 b运行ch 和 运行 gitversion 命令的历史记录创建标签来重现您的场景:
然后我提交并将此 b运行ch 推送到 TFS 2015,在构建代理机器上,我 运行 gitversion 命令:
为了找出它们不同的原因,我登录到TFS构建代理机器并拉取b运行ch,我发现b运行ch上没有标签。那是因为在 Visual Studio 中使用同步或推送不会推送标签。
虽然 GitVersion Docs 提到,如果标记了提交,那么 GitVersion 将始终在任何计算版本上使用该版本。如果您重建标签,那么将生成相同的版本。
总之,VS 不会推送标签导致这种差异。要推送标签,您必须使用命令 git push --tags
.