我想在我的rpm中添加最后一个“git commit id”,以确保能够追溯到构建软件包所使用的源代码。我可以使用rpm的
release
标签,但这已经用于发布号和快照日期。我不想再过载它。是否有另一种标签或机制来存储最后一个提交ID到rpm中?对于这个问题,我不知道Spec格式中是否有特别设计的内容,但我看到了几个选项:
version
标记
release
标记,但它是用于包版本,而非软件版本。Git 修订版本更像是软件版本而不是包版本。1.0
,但建议你确保这与相同名称的 Git 标记相对应,这样你的版本始终对 Git 有意义。serial
标记,以便 RPM 可以确定如何排序版本。(如果您正确使用标记并使用下面的方法确定版本,则可能不需要这样做。)http://example.com/software/software-abcd123.zip
的 url
标记。
在第一种情况(可能也包括第二种情况)下,使用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 版本
不能包含连字符,因此该版本可能需要转写为类似于1.0.0_3_gabcd123
的东西。
rpm
或yum
命令使其对用户可用,还是只是想让打包者知道他们使用了哪些源? - Chrisrpm
或yum
命令来实现,但是作为一个标签。在rpm名称中编码会很丑陋。 - mirk