git describe --match 不适用于 TeamCity
git describe --match does not work on TeamCity
在我们的 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 上,它在此处的构建日志中显示错误:
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) 中可用,是这样吗?
如果我错了请纠正我,让我知道如何解决这个问题。谢谢
去掉双引号后就可以了
'--match=[!build]*'
在我们的 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 上,它在此处的构建日志中显示错误:
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) 中可用,是这样吗?
如果我错了请纠正我,让我知道如何解决这个问题。谢谢
去掉双引号后就可以了
'--match=[!build]*'