2017-10-26 2 views
1

では動作しない記述、我々はこのようないくつかのタグを持っている:接頭辞gitの--matchは私たちのBitbucketではチームシティー

build-0.0.4.152 
0.0.4 
build-0.0.3.151 
build-0.0.3.150 
0.0.3 

すべてのタグ「ビルドを」中間プレリリースビルドからどこタグなしプレフィックスは、本番環境でリリースされたバージョンです。ビルドが正しいタグを取得することができ、IntelliJの上

ローカル
def getVersionFromTag() { 
    def stdout = new ByteArrayOutputStream() 
    exec { 
    commandLine 'git', 'describe', '--abbrev=0', '--match="[!build]*"' 
    standardOutput = stdout 
    } 
    return stdout.toString().trim() 
} 

:私は、VCSのルート(ので、この場合には、私はタグ0.0.4を得ることを期待)から最新の生産タグを取得するにはGradleの方法を持っています。しかしチームシティーで、それが示し、ここでビルド・ログのエラー:私は上記の方法では、コマンドラインから引数'--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]*'

関連する問題