我的VCS具有這些標記混帳擊的正則表達式匹配最新的標籤
0.0.3.156-alpha+2
0.0.3.154
0.0.3.153
build-.139
build-.140
build-.142
build-0.0.1.28
build-0.0.1.29
build-0.0.1.30
build-0.0.1.32
我想git describe --match "<regex>"
拿到形式number.number.number.number的最新標籤(所以它列爲0.0。在這種情況下3.154)
我試圖與git describe --match "[0-9]*.[0-9]*.[0-9]*.[0-9]*$"
,但它不會導致任何東西,也不做這些模式:
"[0-9]*.[0-9]*.[0-9]*.[0-9]+"
"[0-9]*.[0-9]*.[0-9]*.[0-9]{1,}"
我需要在其他版本中獲得最新的標籤以供下一版本使用。所以我正在考慮自動這樣做。請讓我知道,如果我錯過了什麼
感謝
UPDATE:
在我的build.gradle文件我有一個函數來得到這樣的標籤(遵守@Marc回覆):
version getVersionFromTag()
def getVersionFromTag() {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'tag', '|' , 'grep', '^\([0-9]\+\.\?\)\+$', '|', 'sort' , '-nr', '|', 'head', '-1'
standardOutput = stdout
}
return stdout.toString().trim()
}
這裏在上面的正則表達式中給出了錯誤Unexpected Char '\'
。因此,我刪除他們變得'^([0-9]+.?)+$'
,那麼它運行良好,但在我最後的神器,它不具有版本附加的名稱(即helloword.jar
代替helloword-0.0.3.154.jar
=>我的問題是我應該怎麼把@ Marc的提示?命令正確的gradle這個功能
如果標記是最新創建的標記,那麼您可以使用'git describe --abbrev = 0'。或者我錯過了什麼? – crea1
'--match'後面的模式是glob,而不是RegEx。試試'git describe | grep ...' – ElpieKay
@ crea1該命令將僅返回最新的標籤(這裏是'0.0.3.156-alpha + 2')。我想要一個返回表格最新標籤的命令,比如'0.0.3.154' – hydradon