将最后一个git commit id放在rpm中的位置

mir*_*irk 5 git rpm rpmbuild

我想将最后一个"git commit id"添加到我的rpms中,以便有一种简单的方法来跟踪用于构建包的源代码.

我可以使用rpm release标记,但是在快照的情况下,这已经用于版本号和日期.我不想进一步超载这个.

是否有另一个标记或机制来存储rpm中的最后一个commit-id?

Chr*_*ris 7

我不知道专门为此设计的Spec格式中的任何内容,但我确实看到了几个选项:

  • 使用version标签
    • release在问题中提到了标记,但这是针对包版本而不是软件版本.Git版本更像是软件版本而不是软件包版本.
    • 对于稳定版本,您仍然可以使用数字标签,1.0如果您愿意,但我建议您确保这对应于具有相同名称的Git标签,因此您的版本对Git始终有意义.
    • 这样做意味着你可能也应该使用serial标签,因此RPM可以弄清楚如何订购版本.(如果您正确标记并使用以下方法确定您的版本,则可能没有必要.)
    • 这将包括您的包名称中的修订,或至少在文件名中,并且听起来您不希望这样.
  • 使用Git哈希命名源存档,然后使用url类似的标记http://example.com/software/software-abcd123.zip.
    • 您不需要使用此方法在包文件名中包含修订.

在第一种情况下(可能是第二种情况),可能值得使用git describe来确定您的Git感知版本号,例如

$ 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
Run Code Online (Sandbox Code Playgroud)

请注意,您的RPM version不能包含连字符,因此可能必须将此版本转录为类似的内容1.0.0_3_gabcd123.