我在找出 GIT 預告片時遇到了一些麻煩。我試圖找到一種方法來獲取最新的提交訊息,決議預告片并將預告片中的值保存到 CI 腳本的不同變數中。
IE 提交訊息將是:
Updated level 2 geometry
Level: Assets\LevelTwo.fbx
Platform: Android
CI 系統將運行如下內容:
level = git interpret-trailers --parse(Level(value))
platform = git interpret-trailers --parse(Platform(value))
ReImport $level $platform
我沒有發現解釋拖車檔案在這方面很有幫助,因為所有示例都是關于設定規則來更新或添加拖車,而不是如何從中獲取有用資訊。
uj5u.com熱心網友回復:
檢查在 Git 2.22 (Q2 2019) 中獲得的漂亮格式選項是否對您的情況有所幫助。
例子:
git show -s --pretty='%s%n%(trailers:key=Signed-off-by,valueonly)' aaaa881
uj5u.com熱心網友回復:
對于隨機提交訊息,
1st block
blank
2nd block
blank
last block
第一個塊是它的subject,它可以有一個或多個非空行。空白塊也可以有一個或多個空白行。第一個空白下方的內容是body訊息的內容。行采用格式的最后一個塊key:value是預告片。
在你的例子中,
Updated level 2 geometry
Level: Assets\LevelTwo.fbx
Platform: Android
Updated level 2 geometry是主體,其余的是主體。Platform: Android屬于拖車,而不屬于拖車,Level: Assets\LevelTwo.fbx因為它不包含在最后一個非空白塊中。
在命令中git interpret-trailers --parse <file>,檔案可以是磁盤上存在的檔案,也可以是上一條命令的標準輸出。檔案內容應該是提交訊息或補丁,如git log -1 --pretty='%B'或的輸出git format-patch -1 --stdout。
例如,我們可以通過以下方式檢索提交訊息的預告片
git log -1 $commit --pretty='%B' | git interpret-trailers --parse
# or
git format-patch -1 $commit --stdout | git interpret-trailers --parse
我們還可以將輸出轉儲到檔案中,然后決議該檔案。
git log -1 $commit --pretty='%B' > message.txt
git interpret-trailers --parse message.txt
# or
git format-patch -1 $commit
git interpret-trailers --parse 0001-*.patch
我不知道你的 CI 系統使用什么語言。這些陳述句似乎與 git 命令有點不同。
如果提交物件及其 sha1 值可用,我們還可以使用占位符%(trailers)來檢索預告片。
git log -1 $commit --pretty='%(trailers:key=Platform,valueonly)'
它回傳鍵的值Platform,即Android。%(trailers)列印所有鍵和值。key=Platform僅回傳Platform的鍵和值。valueonly或僅valueonly=true回傳Platform的值。
注意Level: Assets\LevelTwo.fbx不屬于拖車。據我所知,git interpret-trailers或者占位符%(trailers)不能直接從提交訊息中檢索它。也許有一些我還不知道的選擇。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/313233.html
