2014-05-22 19 views
4

我想補充的最後一個「混帳提交ID」我的RPM包有一個萬無一失的方法來跟蹤回用於構建一個包的來源。如果把最後的git提交ID在轉

我可以使用rpm release標籤,但這已經是在快照的情況下使用的版本號和日期。我不想進一步超載。

是否有另一個標籤或機制來存儲最後一個提交ID在rpm?

+0

你需要用它來通過'rpm'或'yum'命令提供給用戶,或者你只是想爲打包的方式知道他們用什麼資源? – Chris

+0

我希望它可以從'rpm'或'yum'命令,但作爲標籤。在rpm名稱中編碼會是醜陋的imho。 – mirk

回答

6

我不知道在專門爲此設計的規格格式什麼,但我確實看到幾個選項:

  • 使用version標籤
    • 你提到的release標籤您問題,但這是程序包版本,而不是軟件版本。 Git版本比軟件包版本更像軟件版本。
    • 對於穩定發行版,你仍然可以使用數字標籤,如1.0,如果你想要的,但我勸你要確保這對應於具有相同名稱的一個Git標記,以便您的版本將永遠是有意義的Git。
    • 這樣做意味着你應該也使用serial標籤,所以RPM可以計算出如何訂購版本。 (如果你正確地標記和使用下面的方法來確定你的版本,這可能不是必要的。)
    • 這將包括在你的包的名稱修改,或者至少在文件名,它聽起來就像你不我不想那樣。
  • 用Git hash命名您的源代碼檔案,然後使用http://example.com/software/software-abcd123.zip這樣的url標籤。
    • 您不需要使用此方法將修訂包括在您的包文件名中。

在第一種情況的情況下(以及可能的第二),它可能是值得使用git describe確定你的GIT中感知的版本號,例如

你的RPM version不能包含連字符,所以這個版本可能有
$ git describe HEAD 
1.0.0-3-gabcd123 
'-.-' | |'--.--' 
    | | | `---- Short Git hash 
    | | `-------- Indicates that a Git hash follows 
    | `---------- Three commits ahead of the previous tag name 
    `-------------- The name of the base tag 

注被轉錄成類似1.0.0_3_gabcd123