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

时间:2014-05-22 12:59:26

标签: git rpm rpmbuild

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

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

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

1 个答案:

答案 0 :(得分: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

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