git - git describe --match在TeamCity上不起作用

标签 git gradle teamcity git-tag

在我们的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根目录获取最新的生产标签(因此,在这种情况下,我希望获得标签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]*'

关于git - git describe --match在TeamCity上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46946145/

相关文章:

Git 重置行为

c++ - 忽略多行注释 git diff

intellij-idea - 为什么 gradle idea 插件配置类路径以使用未处理/源测试资源而不是过滤/生成的资源

hibernate - JPA 正确定位和打包元模型

android - 添加com.android.support:design原因导致无法解决R错误

git - 如何用 Git 发布?

git - 如何删除不需要的 git 提交?

delphi - Delphi 的 Teamcity 插件

security - 限制 Teamcity 共享帐户

windows - 使用 robocopy 复制文件时出现错误 5 (0x00000005) 创建目标目录