我想将最后一个“git commit id”添加到我的rpms中,以便有一种简单的方法来跟踪用于构建包的源。
我可以使用rpm release
标记,但在快照的情况下,这已用于版本号和日期。我不想进一步超载这个。
是否有另一个标记或机制将最后一个commit-id存储在rpm中?
答案 0 :(得分:7)
我不知道专门为此设计的Spec格式中的任何内容,但我确实看到了几个选项:
version
标记
release
标记,但这是针对包版本,而不是软件版本。 Git版本更像是软件版本而不是软件包版本。1.0
之类的数字标签,但我建议您确保这对应于具有相同名称的Git标签,以便您的版本始终如一对Git有意义。serial
标记,因此RPM可以找出如何订购版本。 (如果您正确标记并使用以下方法确定您的版本,则可能没有必要。)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
的内容。