什么可以使gitversion在同一个分支上计算不同的版本(本地vs构建代理回购)

时间:2015-11-26 20:38:47

标签: git tfs2015 gitversion

我有一个承诺并同步到TFS 2015的分支机构。

在构建代理上运行构建时,执行的gitversion命令会计算不同的版本。

本地我根据标签3.10.0.202获得3.11.0

Local repo gives 3.11.0

在构建代理上我得到0.1.0

Build server repo gives 3.11.0

我觉得这种变化可能与克隆在构建代理上的完成方式有关。任何人都可以建议,如果这似乎可能,可能有什么区别?

N.B。

  • 构建代理程序只是目前在我的计算机上运行的TFS 2015构建代理程序。
  • 在没有提取的情况下运行命令会产生相同的结果
  • 这是标记tag
  • 构建服务器上的版本号错误(通过TFS构建),但我也使用命令行复制它。我只发布后者,因为它给出了结果。当我下次能够登录服务器时,我可以发布TFS构建输出的示例。第二个例子(D :)中的repo是使用TFS构建克隆的,而第一个(C :)是使用VS 2015克隆的。

1 个答案:

答案 0 :(得分:4)

我可以通过创建分支历史记录的标记并运行gitversion命令来重现您的方案: enter image description here

然后我提交并将此分支推送到TFS 2015,在构建代理机器上,我运行了gitversion命令: enter image description here

为了找出他们为什么不同,我登录TFS构建代理机器并拉动分支,我发现分支上没有标签。那是因为在Visual Studio中使用同步或推送不会推送标签。

虽然GitVersion Docs提到,如果提交被标记,那么GitVersion将始终使用该版本而不是任何计算版本。如果您重建标记,则会生成相同的版本。

总之,VS不会推动标签导致这种差异。要推送标记,您必须使用命令git push --tags