在我们的BitBucket中,我们有一些像这样的标签:
build-0.0.4.152
0.0.4
build-0.0.3.151
build-0.0.3.150
0.0.3
所有带有前缀“ build ”的标签都来自中间预发布版本,其中不带前缀的标签是生产中发布的版本。我有一个gradle方法从VCS root获取最新的生产标记(所以在这种情况下,我希望获得标记0.0.4
):
def getVersionFromTag() {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--abbrev=0', '--match="[!build]*"'
standardOutput = stdout
}
return stdout.toString().trim()
}
在IntelliJ本地,构建能够获得正确的标记。但是在TeamCity上,它在Build log中显示错误:
fatal: No names found, cannot describe anything.
如果我从命令行中删除参数'--match="[!build]*"'
,在上面的方法中,它会工作,但它将获得最新的标记( build-0.0.4.152 ,但不是什么我想 0.0.4 )。所以我认为该论点在TeamCity的git版本中不可用,但它可以在我自己的git(2.6.3.windows.1)上获得,是真的吗?
如果我错了,请纠正我,让我知道如何解决这个问题。谢谢
答案 0 :(得分:0)
删除双引号后,它可以正常工作
'--match=[!build]*'