2017-10-26 1 views
1

에서 작동하지 않습니다 설명, 우리는이 같은 일부 태그가 : 접두어자식 --match 우리의 Bitbucket에서 인 TeamCity

build-0.0.4.152 
0.0.4 
build-0.0.3.151 
build-0.0.3.150 
0.0.3 

모든 태그 "빌드를"중간 시험판 빌드 어디에서 태그가없는 접두어는 프로덕션에서 릴리스 된 버전입니다. 내가 VCS 루트에서 최신 생산 태그를 얻을 수있는 Gradle을 방법이 (이 경우, 그래서를, 나는 태그 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에, 그것은 보여줍니다 여기 빌드 로그에 오류 : 나는 위의 방법에서, 명령 줄에서 인수 '--match="[!build]*"'을 제거하면

fatal: No names found, cannot describe anything. 

, 그것은 작동하지만 최신 태그를 얻을 것이다 (빌드 0.0 .4.152,하지만 원하는 것은 없습니다 0.0.4). 그래서 Teamcity의 git 버전에서는이 인수를 사용할 수 없지만 내 자신의 git (2.6.3.windows.1)에서 사용할 수 있습니다. 사실입니까?

내가 잘못하면 저를 바로 잡고이 문제를 해결하는 방법을 알려주십시오. 제거 후 당신에게

+0

재잘 작동합니다. 'git describe --match = "[! build] *"''는'b','u','i','l' 또는'd'가 아닌 최신 주석 태그를 찾는 것을 의미합니다. 어쩌면'git describe --abbrev = 0 --match = "build - *"'를 사용하여 최신 태그를 얻은 다음 구문 분석하여'0.0.4 '를 얻을 수 있습니다. – ElpieKay

답변

0

감사 따옴표, 그것은 글로브입니다 --match``에 대한

'--match=[!build]*'

관련 문제