我想将最后一个“git commit id”添加到我的 rpm 中,以便有一种万无一失的方法来追踪用于构建包的源。
我可以使用 rpm release
标签,但在快照的情况下,这已经用于发布号和日期。我不想再让它重载。
是否有其他标记或机制将最后一个提交 ID 存储在 rpm 中?
最佳答案
我不知道专门为此设计的规范格式中的任何内容,但我确实看到了几个选项:
- 使用
版本
标签- 您在问题中提到了
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 版本
不能包含连字符,因此可能必须将此版本转录为类似 1.0.0_3_gabcd123
的内容。
关于git - 在 rpm 中将最后一个 git commit id 放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807545/